officefileapi-devexpress-dot-xtrarichedit-dot-api-dot-native-c07605f5.md
Rich text content control.
Namespace : DevExpress.XtraRichEdit.API.Native
Assembly : DevExpress.RichEdit.v25.2.Core.dll
NuGet Package : DevExpress.RichEdit.Core
public interface ContentControlRichText :
ContentControlBase
Public Interface ContentControlRichText
Inherits ContentControlBase
The following members return ContentControlRichText objects:
The code sample below creates a rich text content control:
using DevExpress.XtraRichEdit.API.Native;
using DevExpress.XtraRichEdit;
using (var wordProcessor = new RichEditDocumentServer()) {
wordProcessor.LoadDocument("Content Controls.docx");
Document document = wordProcessor.Document;
var contentControls = document.ContentControls;
// Insert a form to enter a name:
var namePosition = document.CreatePosition(document.Paragraphs[0].Range.End.ToInt() - 1);
var nameControl = contentControls.InsertRichTextControl(namePosition);
// Insert a text to a content control:
var nameTextPosition = document.CreatePosition(nameControl.Range.Start.ToInt() + 1);
document.InsertText(nameTextPosition, "Click to enter a name");
}
Imports DevExpress.XtraRichEdit.API.Native
Imports DevExpress.XtraRichEdit
Using wordProcessor = New RichEditDocumentServer()
wordProcessor.LoadDocument("Content Controls.docx")
Dim document As Document = wordProcessor.Document
Dim contentControls = document.ContentControls
' Insert a form to enter a name:
Dim namePosition = document.CreatePosition(document.Paragraphs(0).Range.End.ToInt() - 1)
Dim nameControl = contentControls.InsertRichTextControl(namePosition)
' Insert a text to a content control:
Dim nameTextPosition = document.CreatePosition(nameControl.Range.Start.ToInt() + 1)
document.InsertText(nameTextPosition, "Click to enter a name")
End Using
The SubDocument.ContentControls property returns all content controls in a document. Use the ContentControlBase.ControlType property to determine the content control type.
The code sample below retrieves all rich text controls in a document:
using DevExpress.XtraRichEdit;
using DevExpress.XtraRichEdit.API.Native;
using (var wordProcessor = new RichEditDocumentServer()) {
Document document = wordProcessor.Document;
var contentControls = document.ContentControls;
var richTextControls = document.ContentControls.Where(contentControl => contentControl.ControlType == ContentControlType.RichText).Cast<ContentControlRichText>();
foreach (ContentControlRichText richTextControl in richTextControls)
{
// your code here
}
Imports DevExpress.XtraRichEdit
Imports DevExpress.XtraRichEdit.API.Native
Using wordProcessor = New RichEditDocumentServer()
Dim document As Document = wordProcessor.Document
Dim contentControls = document.ContentControls
Dim richTextControls = document.ContentControls.Where(Function(contentControl) contentControl.ControlType = ContentControlType.RichText).Cast(Of ContentControlRichText)()
For Each richTextControl In richTextControls
' your code here
Next richTextControl
Use the ContentControlRichText class properties to change the rich text control parameters. The code sample below retrieves the rich text content control from the first paragraph and changes its border color:
using DevExpress.XtraRichEdit;
using DevExpress.XtraRichEdit.API.Native;
using (var wordProcessor = new RichEditDocumentServer()) {
wordProcessor.LoadDocument("Content Controls.docx");
Document document = wordProcessor.Document;
var contentControls = document.ContentControls;
var firstParagraph = document.Paragraphs[0];
for (var i = 0; i < contentControls.Count; i++)
{
if (firstParagraph.Range.Contains(contentControls[i].Range.Start) && contentControls[i].ControlType == ContentControlType.RichText)
{
ContentControlRichText richText = (ContentControlRichText)contentControls[i];
richText.Color = Color.Red;
break;
}
}
}
Imports DevExpress.XtraRichEdit
Imports DevExpress.XtraRichEdit.API.Native
Using wordProcessor = New RichEditDocumentServer()
wordProcessor.LoadDocument("Content Controls.docx")
Dim document As Document = wordProcessor.Document
Dim contentControls = document.ContentControls
Dim firstParagraph = document.Paragraphs(0)
For i = 0 To contentControls.Count - 1
If firstParagraph.Range.Contains(contentControls(i).Range.Start) AndAlso contentControls(i).ControlType = ContentControlType.RichText Then
Dim richText As ContentControlRichText = CType(contentControls(i), ContentControlRichText)
richText.Color = Color.Red
Exit For
End If
Next i
End Using
The ContentControlCollection.Remove method allows you to remove specific content control. You can also specify whether to keep control’s contents when the controls is removed.
The code sample below removes all rich text controls from the document:
using DevExpress.XtraRichEdit;
using DevExpress.XtraRichEdit.API.Native;
using (var wordProcessor = new RichEditDocumentServer()) {
Document document = wordProcessor.Document;
var contentControls = document.ContentControls;
for (var i = 0; i < contentControls.Count; i++)
{
if (contentControls[i].ControlType == ContentControlType.RichText)
{
contentControls.Remove(contentControls[i], true);
}
}
}
Imports DevExpress.XtraRichEdit
Imports DevExpress.XtraRichEdit.API.Native
Using wordProcessor = New RichEditDocumentServer()
Dim document As Document = wordProcessor.Document
Dim contentControls = document.ContentControls
Dim i = 0
Do While i < contentControls.Count
If contentControls(i).ControlType = ContentControlType.RichText Then
contentControls.Remove(contentControls(i), True)
End If
i += 1
Loop
End Using
See Also