Document.Controls Property (2007 System)

Updated: July 2008

Gets the collection of managed controls that are contained on the document.

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

public virtual ControlCollection Controls { get; }

Property Value

Type: Microsoft.Office.Tools.Word.ControlCollection
A ControlCollection that contains all the managed controls on the document.

A document in a Visual Studio Tools for Office solution can contain Windows Forms controls and host controls. For more information, see Controls on Office Documents.

To manage the controls on a document at run time, use the methods and properties of the ControlCollection object returned by the Controls property. For more information, see Adding Controls to Office Documents at Run Time.

The following code example adds text to the first paragraph and creates a Bookmark control that encompasses the paragraph. The code then shows a message box that displays the total number of controls on the document.

This version is for a document-level customization.

private void DocumentControls()
    this.Paragraphs[1].Range.Text = "This is some sample text.";
    this.Controls.AddBookmark(this.Paragraphs[1].Range, "Bookmark1");
    MessageBox.Show("Total number of controls: " +

This version is for an application-level add-in.

private void DocumentControls()
    Document vstoDoc = this.Application.ActiveDocument.GetVstoObject();
    vstoDoc.Paragraphs[1].Range.Text = "This is some sample text.";
    vstoDoc.Controls.AddBookmark(vstoDoc.Paragraphs[1].Range, "Bookmark1");
    System.Windows.Forms.MessageBox.Show("Total number of controls: " +




July 2008

Added a version of the code example for an application-level add-in.

SP1 feature change.

Community Additions