# MS Word Content Controls Field Adapter Classes

> Field adapter classes in the DocumentServer.Fields namespace wrap MS Word Content Controls including CheckBox, ComboBox, Date, and DropDown types. These adapters let developers create or manipulate content control fields through typed properties without parsing raw Office Open XML.

- **Author:** Bjoern Meyer
- **Published:** 2014-08-05
- **Modified:** 2026-03-05
- **Description:** Field adapter classes in the DocumentServer.Fields namespace wrap MS Word Content Controls including CheckBox, ComboBox, Date, and DropDown types. These adapters let developers create or manipulate content control fields through typed properties without parsing raw Office Open XML.
- **2 min read** (364 words)
- **Tags:**
  - Reporting
  - Tutorial
- **LLMs.txt URL:** https://www.textcontrol.com/blog/2014/08/05/ms-word-content-controls-field-adapter-classes/llms.txt
- **LLMs-full.txt URL:** https://www.textcontrol.com/blog/2014/08/05/ms-word-content-controls-field-adapter-classes/llms-full.txt
- **Canonical URL:** https://www.textcontrol.com/blog/2014/08/05/ms-word-content-controls-field-adapter-classes/
- **GitHub Repository:** https://github.com/TextControl/TextControl.DocumentServer.MS-Word-Content-Controls-Field-Adapter-Classes

---

This article is obsolete. The field adapter classes have been implemented in the DocumentServer namespace directly:

TXTextControl.DocumentServer.Fields.FieldAdapter class

The sample code is usable and is migrated to the new integrated classes.

In Microsoft Word, **Content Controls** are controls that can be added and customized for use in documents and templates. Those controls provide properties and settings that can be used to automate documents.

When loading a document in the *Office Open XML* format, Content Controls are available through the [ApplicationFieldCollection](https://docs.textcontrol.com/textcontrol/windows-forms/ref.txtextcontrol.applicationfieldcollection.class.htm) and its [ApplicationField](https://docs.textcontrol.com/textcontrol/windows-forms/ref.txtextcontrol.applicationfield.class.htm) objects.

The [Parameters](https://docs.textcontrol.com/textcontrol/windows-forms/ref.txtextcontrol.applicationfield.parameters.property.htm) property contains the pure Office Open XML data of those fields.

The [TXTextControl.DocumentServer.Fields namespace](https://docs.textcontrol.com/textcontrol/windows-forms/ref.txtextcontrol.documentserver.fields.namespace.htm) already provides field adapter for merge and form fields. Now, we published complete adapter classes for the following content controls:

- RichTextContentControl
- PlainTextContentControl
- CheckBoxContentControl
- ComboBoxContentControl
- DateContentControl
- DropDownContentControl

Using the adapter classes, you can create new content control fields or manipulate content control fields without any knowledge of the specific Office Open XML format.

Those classes extend the existing namespace *TXTextControl.DocumentServer.Fields*:

[![ContentControl classes](https://s1-www.textcontrol.com/assets/dist/blog/2014/08/05/a/assets/classes_contentcontrols_zoom.webp "ContentControl classes")](https://s1-www.textcontrol.com/assets/dist/blog/2014/08/05/a/assets/classes_contentcontrols_zoom.webp)

In order to create a new *CheckBoxContentControl*, simply create a new adapter field and add its *ApplicationField* to *TextControl*:

```
CheckBoxContentControl checkbox = new CheckBoxContentControl();
checkbox.Checked = true;

textControl1.ApplicationFields.Add(checkbox.ApplicationField);
```

To manipulate an existing Content Control field, the adapter field class can be created with the existing *ApplicationField* in the constructor:

```
foreach (ApplicationField field in textControl1.ApplicationFields)
{
Type type = ContentControlFieldAdapter.GetContentControlType(field);

// based on the type, create a new ContentControl object and
// display some field information in a MessageBox
switch (type.Name)
{
case "RichTextContentControl":
RichTextContentControl rtb = new RichTextContentControl(field);

MessageBox.Show(
"RichTextContentControl:
Text: " + rtb.Text + "
" +
"Title: " + rtb.Title + "
" +
"Tag: " + rtb.Tag + "
");
break;
// ...
}
}
```

Download the sample from GitHub and test it on your own.

---

## About Bjoern Meyer

As CEO, Bjoern is the visionary behind our strategic direction and business development, bridging the gap between our customers and engineering teams. His deep passion for coding and web technologies drives the creation of innovative products. If you're at a tech conference, be sure to stop by our booth - you'll most likely meet Bjoern in person. With an advanced graduate degree (Dipl. Inf.) in Computer Science, specializing in AI, from the University of Bremen, Bjoern brings significant expertise to his role. In his spare time, Bjoern enjoys running, paragliding, mountain biking, and playing the piano.

- [LinkedIn](https://www.linkedin.com/in/bjoernmeyer/)
- [X](https://x.com/txbjoern)
- [GitHub](https://github.com/bjoerntx)

---

## Related Posts

- [Creating Your First ASP.NET Reporting Application](https://www.textcontrol.com/blog/2020/01/01/creating-your-first-aspnet-reporting-application/llms.txt)
- [New Online Sample: Build your First Report](https://www.textcontrol.com/blog/2019/07/03/build-your-first-report/llms.txt)
- [Create your First Document with ReportingCloud](https://www.textcontrol.com/blog/2019/02/19/create-your-first-document-with-reportingcloud/llms.txt)
- [MailMerge: Starting Each Merge Block on a New Page](https://www.textcontrol.com/blog/2016/09/09/mailmerge-starting-each-merge-block-on-a-new-page/llms.txt)
- [Using MailMerge with JSON Data](https://www.textcontrol.com/blog/2015/08/04/using-mailmerge-with-json-data/llms.txt)
- [Merging Documents with RESTful Web API's](https://www.textcontrol.com/blog/2015/07/31/merging-documents-with-restful-web-apis/llms.txt)
- [Windows Forms: Printing Multiple Pages Per Sheet](https://www.textcontrol.com/blog/2015/07/24/windows-forms-printing-multiple-pages-per-sheet/llms.txt)
- [Inserting Watermark Images to All Pages Dynamically](https://www.textcontrol.com/blog/2015/07/17/inserting-watermark-images-to-all-pages-dynamically/llms.txt)
- [Reporting: Sorting Merge Block Rows by Column Name](https://www.textcontrol.com/blog/2015/07/15/reporting-sorting-merge-block-rows-by-column-name/llms.txt)
- [MailMerge with the Entity Framework Using Database First](https://www.textcontrol.com/blog/2015/06/24/mailmerge-with-the-entity-framework-using-database-first/llms.txt)
- [Checked and Unchecked Check Boxes with IF Fields](https://www.textcontrol.com/blog/2015/03/25/checked-and-unchecked-check-boxes-with-if-fields/llms.txt)
- [Reporting: Conditional Formatted Text Blocks](https://www.textcontrol.com/blog/2015/03/13/reporting-conditional-formatted-text-blocks/llms.txt)
- [Reporting Best Practices and How-To Guides](https://www.textcontrol.com/blog/2015/02/05/reporting-best-practices-and-how-to-guides/llms.txt)
- [MailMerge: Master Table and Client Tables](https://www.textcontrol.com/blog/2015/01/28/mailmerge-master-table-and-client-tables/llms.txt)
- [MailMerge: Formatting Numeric Strings in Merge Fields](https://www.textcontrol.com/blog/2015/01/22/mailmerge-formatting-numeric-strings-in-merge-fields/llms.txt)
- [MailMerge: Merge CheckBoxes During the Merge Process](https://www.textcontrol.com/blog/2015/01/12/mailmerge-merge-checkboxes-during-the-merge-process/llms.txt)
- [MailMerge: Conditional INCLUDETEXT Fields](https://www.textcontrol.com/blog/2015/01/08/mailmerge-conditional-includetext-fields/llms.txt)
- [HTML5 Technical Considerations - The Concept Explained](https://www.textcontrol.com/blog/2014/10/16/html5-technical-considerations-the-concept-explained/llms.txt)
- [TX Text Control Web: Attaching Events to Ribbon Elements](https://www.textcontrol.com/blog/2014/10/07/tx-text-control-web-attaching-events-to-ribbon-elements/llms.txt)
- [TX Text Control Web: Customize the Ribbon Bar](https://www.textcontrol.com/blog/2014/10/03/tx-text-control-web-customize-the-ribbon-bar/llms.txt)
- [Text Control Web - Fundamental Concepts: The Data Source](https://www.textcontrol.com/blog/2014/10/02/text-control-web-fundamental-concepts-the-data-source/llms.txt)
- [Reporting: Removing Empty Table Rows](https://www.textcontrol.com/blog/2014/09/30/reporting-removing-empty-table-rows/llms.txt)
- [Reporting: Merge Blocks and Structured Numbered Lists](https://www.textcontrol.com/blog/2014/07/29/reporting-merge-blocks-and-structured-numbered-lists/llms.txt)
- [Creating Avery Labels Using Text Control Reporting](https://www.textcontrol.com/blog/2014/07/22/creating-avery-labels-using-text-control-reporting/llms.txt)
- [New Online Samples for TX Text Control .NET Server](https://www.textcontrol.com/blog/2014/07/16/new-online-samples-for-tx-text-control-net-server-for-aspnet/llms.txt)
