ControlCollection.AddDropDownListContentControl Method (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.
Namespace: Microsoft.Office.Tools.Word
Assembly: Microsoft.Office.Tools.Word (in Microsoft.Office.Tools.Word.dll)
Syntax
'Declaration
Function AddDropDownListContentControl ( _
contentControl As ContentControl, _
name As String _
) As DropDownListContentControl
DropDownListContentControl AddDropDownListContentControl(
ContentControl contentControl,
string name
)
Parameters
contentControl
Type: Microsoft.Office.Interop.Word.ContentControlThe Microsoft.Office.Interop.Word.ContentControl that is the basis for the new control.
name
Type: System.StringThe name of the new control.
Return Value
Type: Microsoft.Office.Tools.Word.DropDownListContentControl
The DropDownListContentControl that was added to the document.
Exceptions
Exception | Condition |
---|---|
ArgumentNullException | contentControl is nulla null reference (Nothing in Visual Basic). -or- name is nulla null reference (Nothing in Visual Basic) 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 Type property of contentControl does not have the value Microsoft.Office.Interop.Word.WdContentControlType.wdContentControlDropdownList). |
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.
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 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
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);
}
}
}
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 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
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);
}
}
}
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.
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
void ThisDocument_DropDownListContentControlAfterAdd(Word.ContentControl NewContentControl, bool InUndoRedo)
{
if (NewContentControl.Type == Word.WdContentControlType.wdContentControlDropdownList)
{
this.Controls.AddDropDownListContentControl(NewContentControl,
"DropDownListControl" + NewContentControl.ID);
}
}
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.
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
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);
}
}
.NET Framework Security
- Full trust for the immediate caller. This member cannot be used by partially trusted code. For more information, see Using Libraries from Partially Trusted Code.
See Also
Reference
AddDropDownListContentControl Overload
Microsoft.Office.Tools.Word Namespace