Share via


ControlCollection.AddDropDownListContentControl Method

Definition

Overloads

AddDropDownListContentControl(String)

Adds a new DropDownListContentControl at the current selection in the document.

AddDropDownListContentControl(ContentControl, String)

Adds a new DropDownListContentControl to the collection. The new control is based on a native content control that is already in the document.

AddDropDownListContentControl(Range, String)

Adds a new DropDownListContentControl at the specified range in the document.

AddDropDownListContentControl(String)

Adds a new DropDownListContentControl at the current selection in the document.

public:
 Microsoft::Office::Tools::Word::DropDownListContentControl ^ AddDropDownListContentControl(System::String ^ name);
public Microsoft.Office.Tools.Word.DropDownListContentControl AddDropDownListContentControl (string name);
abstract member AddDropDownListContentControl : string -> Microsoft.Office.Tools.Word.DropDownListContentControl
Public Function AddDropDownListContentControl (name As String) As DropDownListContentControl

Parameters

name
String

The name of the new control.

Returns

The DropDownListContentControl that was added to the document.

Exceptions

name is null or has zero length.

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

Examples

The following code example adds a new DropDownListContentControl to the beginning of the document. The example also adds the names of several days to the list of items that users can select in the control.

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

private Microsoft.Office.Tools.Word.DropDownListContentControl dropDownListControl1;

private void AddDropDownListControlAtSelection()
{
    this.Paragraphs[1].Range.InsertParagraphBefore();
    this.Paragraphs[1].Range.Select();

    dropDownListControl1 = this.Controls.AddDropDownListContentControl("dropDownListControl1");
    dropDownListControl1.DropDownListEntries.Add("Monday", "Monday", 0);
    dropDownListControl1.DropDownListEntries.Add("Tuesday", "Tuesday", 1);
    dropDownListControl1.DropDownListEntries.Add("Wednesday", "Wednesday", 2);
    dropDownListControl1.PlaceholderText = "Choose a day";
}
Dim dropDownListControl1 As Microsoft.Office.Tools.Word.DropDownListContentControl

Private Sub AddDropDownListControlAtSelection()
    Me.Paragraphs(1).Range.InsertParagraphBefore()
    Me.Paragraphs(1).Range.Select()
    dropDownListControl1 = Me.Controls.AddDropDownListContentControl("dropDownListControl1")
    With dropDownListControl1
        .DropDownListEntries.Add("Monday", "Monday", 0)
        .DropDownListEntries.Add("Tuesday", "Tuesday", 1)
        .DropDownListEntries.Add("Wednesday", "Wednesday", 2)
        .PlaceholderText = "Choose a day"
    End With
End Sub

This version is for an application-level add-in that targets the .NET Framework 4 or the .NET Framework 4.5. To use this code, paste it into the ThisAddIn class in your project, and call the AddDropDownListControlAtSelection method from the ThisAddIn_Startup method.

private Microsoft.Office.Tools.Word.DropDownListContentControl dropDownListControl1;

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

    Document vstoDoc = Globals.Factory.GetVstoObject(this.Application.ActiveDocument);
    vstoDoc.Paragraphs[1].Range.InsertParagraphBefore();
    vstoDoc.Paragraphs[1].Range.Select();

    dropDownListControl1 = vstoDoc.Controls.AddDropDownListContentControl("dropDownListControl1");
    dropDownListControl1.DropDownListEntries.Add("Monday", "Monday", 0);
    dropDownListControl1.DropDownListEntries.Add("Tuesday", "Tuesday", 1);
    dropDownListControl1.DropDownListEntries.Add("Wednesday", "Wednesday", 2);
    dropDownListControl1.PlaceholderText = "Choose a day";
}
Dim dropDownListControl1 As Microsoft.Office.Tools.Word.DropDownListContentControl

Private Sub AddDropDownListControlAtSelection()
    If Me.Application.ActiveDocument Is Nothing Then
        Return
    End If

    Dim vstoDoc As Document = Globals.Factory.GetVstoObject(Me.Application.ActiveDocument)
    vstoDoc.Paragraphs(1).Range.InsertParagraphBefore()
    vstoDoc.Paragraphs(1).Range.Select()
    dropDownListControl1 = vstoDoc.Controls.AddDropDownListContentControl("dropDownListControl1")
    With dropDownListControl1
        .DropDownListEntries.Add("Monday", "Monday", 0)
        .DropDownListEntries.Add("Tuesday", "Tuesday", 1)
        .DropDownListEntries.Add("Wednesday", "Wednesday", 2)
        .PlaceholderText = "Choose a day"
    End With
End Sub

Remarks

Use this method to add a new DropDownListContentControl at the current selection in the document at run time. For more information, see Adding Controls to Office Documents at Run Time.

Applies to

AddDropDownListContentControl(ContentControl, String)

Adds a new DropDownListContentControl to the collection. The new control is based on a native content control that is already in the document.

public:
 Microsoft::Office::Tools::Word::DropDownListContentControl ^ AddDropDownListContentControl(Microsoft::Office::Interop::Word::ContentControl ^ contentControl, System::String ^ name);
public Microsoft.Office.Tools.Word.DropDownListContentControl AddDropDownListContentControl (Microsoft.Office.Interop.Word.ContentControl contentControl, string name);
abstract member AddDropDownListContentControl : Microsoft.Office.Interop.Word.ContentControl * string -> Microsoft.Office.Tools.Word.DropDownListContentControl
Public Function AddDropDownListContentControl (contentControl As ContentControl, name As String) As DropDownListContentControl

Parameters

contentControl
ContentControl

The ContentControl that is the basis for the new control.

name
String

The name of the new control.

Returns

The DropDownListContentControl that was added to the document.

Exceptions

contentControl is null.-or- name is null or has zero length.

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

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

Examples

The following code example creates a new DropDownListContentControl for every native drop down list 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 CreateDropDownListControlsFromNativeControls method from the ThisDocument_Startup method.

private System.Collections.Generic.List
    <Microsoft.Office.Tools.Word.DropDownListContentControl> dropDownControls;

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

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

    foreach (Word.ContentControl nativeControl in this.ContentControls)
    {
        if (nativeControl.Type == Word.WdContentControlType.wdContentControlDropdownList)
        {
            count++;
            Microsoft.Office.Tools.Word.DropDownListContentControl tempControl =
                this.Controls.AddDropDownListContentControl(nativeControl,
                "VSTODropDownListContentControl" + count.ToString());
            dropDownControls.Add(tempControl);
        }
    }
}
Private dropDownListControls As New System.Collections.Generic.List _
        (Of Microsoft.Office.Tools.Word.DropDownListContentControl)

Private Sub CreateDropDownListControlsFromNativeControls()
    If Me.ContentControls.Count <= 0 Then
        Return
    End If

    Dim count As Integer = 0
    For Each nativeControl As Word.ContentControl In Me.ContentControls
        If nativeControl.Type = Word.WdContentControlType.wdContentControlDropdownList Then
            count += 1
            Dim tempControl As Microsoft.Office.Tools.Word.DropDownListContentControl = _
                Me.Controls.AddDropDownListContentControl(nativeControl, _
                "VSTODropDownListContentControl" + count.ToString())
            dropDownListControls.Add(tempControl)
        End If
    Next nativeControl
End Sub

This version is for an application-level add-in that targets the .NET Framework 4 or the .NET Framework 4.5. To use this code, paste it into the ThisAddIn class in your add-in project, and call the CreateDropDownListControlsFromNativeControls method from the ThisAddIn_Startup method.

private System.Collections.Generic.List
    <Microsoft.Office.Tools.Word.DropDownListContentControl> dropDownControls;

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

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

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

    foreach (Word.ContentControl nativeControl in vstoDoc.ContentControls)
    {
        if (nativeControl.Type == Word.WdContentControlType.wdContentControlDropdownList)
        {
            count++;
            Microsoft.Office.Tools.Word.DropDownListContentControl tempControl =
                vstoDoc.Controls.AddDropDownListContentControl(nativeControl,
                "VSTODropDownListContentControl" + count.ToString());
            dropDownControls.Add(tempControl);
        }
    }
}
Private dropDownListControls As New System.Collections.Generic.List _
        (Of Microsoft.Office.Tools.Word.DropDownListContentControl)

Private Sub CreateDropDownListControlsFromNativeControls()
    If Me.Application.ActiveDocument Is Nothing Then
        Return
    End If

    Dim vstoDoc As Document = Globals.Factory.GetVstoObject(Me.Application.ActiveDocument)
    If vstoDoc.ContentControls.Count <= 0 Then
        Return
    End If

    Dim count As Integer = 0
    For Each nativeControl As Word.ContentControl In vstoDoc.ContentControls
        If nativeControl.Type = Word.WdContentControlType.wdContentControlDropdownList Then
            count += 1
            Dim tempControl As Microsoft.Office.Tools.Word.DropDownListContentControl = _
                vstoDoc.Controls.AddDropDownListContentControl(nativeControl, _
                "VSTODropDownListContentControl" + count.ToString())
            dropDownListControls.Add(tempControl)
        End If
    Next nativeControl
End Sub

The following code example creates a new DropDownListContentControl for every native drop down list 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_DropDownListContentControlAfterAdd event handler to the ContentControlAfterAdd event of the ThisDocument class.

void ThisDocument_DropDownListContentControlAfterAdd(Word.ContentControl NewContentControl, bool InUndoRedo)
{
    if (NewContentControl.Type == Word.WdContentControlType.wdContentControlDropdownList)
    {
        this.Controls.AddDropDownListContentControl(NewContentControl,
            "DropDownListControl" + NewContentControl.ID);
    }
}
Private Sub ThisDocument_DropDownListContentControlAfterAdd(ByVal NewContentControl As Word.ContentControl, _
    ByVal InUndoRedo As Boolean) Handles Me.ContentControlAfterAdd

    If NewContentControl.Type = Word.WdContentControlType.wdContentControlDropdownList Then
        Me.Controls.AddDropDownListContentControl(NewContentControl, _
            "DropDownListControl" + NewContentControl.ID)
    End If
End Sub

This version is for an application-level add-in that targets the .NET Framework 4 or the .NET Framework 4.5. To use this code, paste it into the ThisAddIn class in your project. Also, you must attach the ActiveDocument_DropDownListContentControlAfterAdd event handler to the ContentControlAfterAdd event of the active document.

void ActiveDocument_DropDownListContentControlAfterAdd(
    Word.ContentControl NewContentControl, bool InUndoRedo)
{
    Document vstoDoc = Globals.Factory.GetVstoObject(this.Application.ActiveDocument);
    if (NewContentControl.Type == Word.WdContentControlType.wdContentControlDropdownList)
    {
        vstoDoc.Controls.AddDropDownListContentControl(NewContentControl,
            "DropDownListControl" + NewContentControl.ID);
    }
}
Private Sub ActiveDocument_DropDownListContentControlAfterAdd( _
    ByVal NewContentControl As Word.ContentControl, _
    ByVal InUndoRedo As Boolean)

    Dim vstoDoc As Document = Globals.Factory.GetVstoObject(Me.Application.ActiveDocument)
    If NewContentControl.Type = Word.WdContentControlType. _
        wdContentControlDropdownList Then
        vstoDoc.Controls.AddDropDownListContentControl(NewContentControl, _
            "DropDownListControl" + NewContentControl.ID)
    End If
End Sub

Remarks

Use this method to add a new DropDownListContentControl that is based on a native content control in the document at run time. This is useful when you create a DropDownListContentControl 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.

Applies to

AddDropDownListContentControl(Range, String)

Adds a new DropDownListContentControl at the specified range in the document.

public:
 Microsoft::Office::Tools::Word::DropDownListContentControl ^ AddDropDownListContentControl(Microsoft::Office::Interop::Word::Range ^ range, System::String ^ name);
public Microsoft.Office.Tools.Word.DropDownListContentControl AddDropDownListContentControl (Microsoft.Office.Interop.Word.Range range, string name);
abstract member AddDropDownListContentControl : Microsoft.Office.Interop.Word.Range * string -> Microsoft.Office.Tools.Word.DropDownListContentControl
Public Function AddDropDownListContentControl (range As Range, name As String) As DropDownListContentControl

Parameters

range
Range

A Range that provides the bounds for the new control.

name
String

The name of the new control.

Returns

The DropDownListContentControl that was added to the document.

Exceptions

name is null or has zero length.

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

Examples

The following code example adds a new DropDownListContentControl to the beginning of the document. The example also adds the names of several days to the list of items that users can select in the control.

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

private Microsoft.Office.Tools.Word.DropDownListContentControl dropDownListControl2;

private void AddDropDownListControlAtRange()
{
    this.Paragraphs[1].Range.InsertParagraphBefore();

    dropDownListControl2 = this.Controls.AddDropDownListContentControl(this.Paragraphs[1].Range,
        "dropDownListControl2");
    dropDownListControl2.DropDownListEntries.Add("Monday", "Monday", 0);
    dropDownListControl2.DropDownListEntries.Add("Tuesday", "Tuesday", 1);
    dropDownListControl2.DropDownListEntries.Add("Wednesday", "Wednesday", 2);
    dropDownListControl2.PlaceholderText = "Choose a day";
}
Dim dropDownListControl2 As Microsoft.Office.Tools.Word.DropDownListContentControl

Private Sub AddDropDownListControlAtRange()
    Me.Paragraphs(1).Range.InsertParagraphBefore()
    dropDownListControl2 = Me.Controls.AddDropDownListContentControl(Me.Paragraphs(1).Range, _
        "dropDownListControl2")
    With dropDownListControl2
        .DropDownListEntries.Add("Monday", "Monday", 0)
        .DropDownListEntries.Add("Tuesday", "Tuesday", 1)
        .DropDownListEntries.Add("Wednesday", "Wednesday", 2)
        .PlaceholderText = "Choose a day"
    End With
End Sub

This version is for an application-level add-in that targets the .NET Framework 4 or the .NET Framework 4.5. To use this code, paste it into the ThisAddIn class in your project, and call the AddDropDownListControlAtRange method from the ThisAddIn_Startup method.

private Microsoft.Office.Tools.Word.DropDownListContentControl dropDownListControl2;

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

    Document vstoDoc = Globals.Factory.GetVstoObject(this.Application.ActiveDocument);
    vstoDoc.Paragraphs[1].Range.InsertParagraphBefore();

    dropDownListControl2 = vstoDoc.Controls.AddDropDownListContentControl(
        vstoDoc.Paragraphs[1].Range,
        "dropDownListControl2");
    dropDownListControl2.DropDownListEntries.Add("Monday", "Monday", 0);
    dropDownListControl2.DropDownListEntries.Add("Tuesday", "Tuesday", 1);
    dropDownListControl2.DropDownListEntries.Add("Wednesday", "Wednesday", 2);
    dropDownListControl2.PlaceholderText = "Choose a day";
}
Dim dropDownListControl2 As Microsoft.Office.Tools.Word.DropDownListContentControl

Private Sub AddDropDownListControlAtRange()
    If Me.Application.ActiveDocument Is Nothing Then
        Return
    End If

    Dim vstoDoc As Document = Globals.Factory.GetVstoObject(Me.Application.ActiveDocument)
    vstoDoc.Paragraphs(1).Range.InsertParagraphBefore()
    dropDownListControl2 = vstoDoc.Controls.AddDropDownListContentControl( _
        vstoDoc.Paragraphs(1).Range, _
        "dropDownListControl2")
    With dropDownListControl2
        .DropDownListEntries.Add("Monday", "Monday", 0)
        .DropDownListEntries.Add("Tuesday", "Tuesday", 1)
        .DropDownListEntries.Add("Wednesday", "Wednesday", 2)
        .PlaceholderText = "Choose a day"
    End With
End Sub

Remarks

Use this method to add a new DropDownListContentControl at a specified range in the document at run time. For more information, see Adding Controls to Office Documents at Run Time.

Applies to