Export (0) Print
Expand All

ControlCollection.AddRichTextContentControl Method (, String) (2007 System)

Updated: July 2008

Adds a new RichTextContentControl that is based on a native content control in the document.

Namespace:  Microsoft.Office.Tools.Word
Assembly:  Microsoft.Office.Tools.Word.v9.0 (in Microsoft.Office.Tools.Word.v9.0.dll)

public RichTextContentControl AddRichTextContentControl(
	ContentControl contentControl,
	string name
)

Parameters

contentControl
Type: ContentControl

The ContentControl that is the basis for the new control.

name
Type: System.String

The name of the new control.

Return Value

Type: Microsoft.Office.Tools.Word.RichTextContentControl
The RichTextContentControl that was added to the document.

ExceptionCondition
ArgumentNullException

contentControl is null.

-or-

name is null or has zero length.

ControlNameAlreadyExistsException

A control with the same name is already in the ControlCollection.

ArgumentException

contentControl is not a building block gallery (that is, the Microsoft.Office.Interop.Word.ContentControl.Type property of contentControl does not have the value Microsoft.Office.Interop.Word.WdContentControlType.wdContentControlRichText).

Use this method to add a new RichTextContentControl that is based on a native content control in the document at run time. This is useful when you create a RichTextContentControl at run time, and you want to recreate the same control the next time the document is opened. For more information, see Adding Controls to Office Documents at Run Time.

The following code example creates a new RichTextContentControl for every native rich text control that is in the document.

This version is for a document-level customization. To use this code, paste it into the ThisDocument class in your project, and call the CreateRichTextControlsFromNativeControls method from the ThisDocument_Startup method.

private System.Collections.Generic.List
    <Microsoft.Office.Tools.Word.RichTextContentControl> richTextControls;

private void CreateRichTextControlsFromNativeControls()
{
    if (this.ContentControls.Count <= 0)
        return;

    richTextControls = new System.Collections.Generic.List
        <Microsoft.Office.Tools.Word.RichTextContentControl>();
    int count = 0;

    foreach (Word.ContentControl nativeControl in this.ContentControls)
    {
        if (nativeControl.Type ==
            Microsoft.Office.Interop.Word.WdContentControlType.wdContentControlRichText)
        {
            count++;
            Microsoft.Office.Tools.Word.RichTextContentControl tempControl =
                this.Controls.AddRichTextContentControl(nativeControl,
                "VSTORichTextControl" + count.ToString());
            richTextControls.Add(tempControl);
        }
    }
}

This version is for an application-level add-in. To use this code, paste it into the ThisAddIn class in your project, and call the CreateRichTextControlsFromNativeControls method from the ThisAddIn_Startup method.

private System.Collections.Generic.List
    <Microsoft.Office.Tools.Word.RichTextContentControl> richTextControls;

private void CreateRichTextControlsFromNativeControls()
{
    if (this.Application.ActiveDocument == null)
        return;

    Document vstoDoc = this.Application.ActiveDocument.GetVstoObject();
    if (vstoDoc.ContentControls.Count <= 0)
        return;

    richTextControls = new System.Collections.Generic.List
        <Microsoft.Office.Tools.Word.RichTextContentControl>();
    int count = 0;

    foreach (Word.ContentControl nativeControl in vstoDoc.ContentControls)
    {
        if (nativeControl.Type ==
            Microsoft.Office.Interop.Word.WdContentControlType.wdContentControlRichText)
        {
            count++;
            Microsoft.Office.Tools.Word.RichTextContentControl tempControl =
                vstoDoc.Controls.AddRichTextContentControl(nativeControl,
                "VSTORichTextControl" + count.ToString());
            richTextControls.Add(tempControl);
        }
    }
}

The following code example creates a new RichTextContentControl for every native rich text control that the user adds to the document.

This version is for a document-level customization. To use this code, paste it into the ThisDocument class in your project. For C#, you must also attach the ThisDocument_RichTextContentControlAfterAdd event handler to the ContentControlAfterAdd event of the ThisDocument class.

void ThisDocument_RichTextContentControlAfterAdd(Word.ContentControl NewContentControl, bool InUndoRedo)
{
    if (NewContentControl.Type == Word.WdContentControlType.wdContentControlRichText)
    {
        this.Controls.AddRichTextContentControl(NewContentControl,
            "RichTextControl" + NewContentControl.ID);
    }
}

This version is for an application-level add-in. To use this code, paste it into the ThisAddIn class in your project. Also, you must attach the ActiveDocument_RichTextContentControlAfterAdd event handler to the ContentControlAfterAdd event of the active document.

void ActiveDocument_RichTextContentControlAfterAdd(
    Word.ContentControl NewContentControl, bool InUndoRedo)
{            
    Document vstoDoc = this.Application.ActiveDocument.GetVstoObject();
    if (NewContentControl.Type == Word.WdContentControlType.wdContentControlRichText)
    {
        vstoDoc.Controls.AddRichTextContentControl(NewContentControl,
            "RichTextControl" + NewContentControl.ID);
    }
}

Date

History

Reason

July 2008

Added versions of code examples for an application-level add-in.

SP1 feature change.

Community Additions

ADD
Show:
© 2014 Microsoft