Condividi tramite


Metodo ControlCollection.AddBuildingBlockGalleryContentControl (ContentControl, String)

Aggiunge un nuovo BuildingBlockGalleryContentControl all'insieme. Il nuovo controllo si basa su un controllo contenuto nativo già presente nel documento.

Spazio dei nomi:  Microsoft.Office.Tools.Word
Assembly:  Microsoft.Office.Tools.Word (in Microsoft.Office.Tools.Word.dll)

Sintassi

'Dichiarazione
Function AddBuildingBlockGalleryContentControl ( _
    contentControl As ContentControl, _
    name As String _
) As BuildingBlockGalleryContentControl
BuildingBlockGalleryContentControl AddBuildingBlockGalleryContentControl(
    ContentControl contentControl,
    string name
)

Parametri

Valore restituito

Tipo: Microsoft.Office.Tools.Word.BuildingBlockGalleryContentControl
Oggetto BuildingBlockGalleryContentControl aggiunto al documento.

Eccezioni

Eccezione Condizione
ArgumentNullException

contentControl è nullriferimento null (Nothing in Visual Basic).

In alternativa

name è nullriferimento null (Nothing in Visual Basic) oppure ha lunghezza zero.

ControlNameAlreadyExistsException

In ControlCollection è già presente un controllo con lo stesso nome.

ArgumentException

contentControl non è una raccolta di blocchi predefiniti, vale a dire che la proprietà Type di contentControl non ha il valore Microsoft.Office.Interop.Word.WdContentControlType.wdContentControlBuildingBlockGallery.

Note

Utilizzare questo metodo per aggiungere un nuovo oggetto BuildingBlockGalleryContentControl basato su un controllo contenuto nativo presente nel documento. Questa operazione si rivela utile quando, nella creazione di BuildingBlockGalleryContentControl in fase di esecuzione, si desidera ricreare lo stesso controllo alla successiva apertura del documento. Per ulteriori informazioni, vedere Aggiunta di controlli ai documenti di Office in fase di esecuzione.

Esempi

Nell'esempio di codice seguente viene creato un nuovo oggetto BuildingBlockGalleryContentControl per ciascuna raccolta nativa di blocchi predefiniti già presente nel documento.

Questa versione è valida per una personalizzazione a livello di documento. Per utilizzare questo codice, incollarlo nella classe ThisDocument del progetto e quindi chiamare il metodo CreateBuildingBlockControlsFromNativeControls dal metodo ThisDocument_Startup.

Private buildingBlockControls As New System.Collections.Generic.List _
        (Of Microsoft.Office.Tools.Word.BuildingBlockGalleryContentControl)

Private Sub CreateBuildingBlockGalleryControlsFromNativeControls()
    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.wdContentControlBuildingBlockGallery Then
            count += 1
            Dim tempControl As Microsoft.Office.Tools.Word.BuildingBlockGalleryContentControl = _
                Me.Controls.AddBuildingBlockGalleryContentControl(nativeControl, _
                "VSTOBuildingBlockGalleryContentControl" + count.ToString())
            buildingBlockControls.Add(tempControl)
        End If
    Next nativeControl
End Sub
private System.Collections.Generic.List
   <Microsoft.Office.Tools.Word.BuildingBlockGalleryContentControl> buildingBlockControls;

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

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

    foreach (Word.ContentControl nativeControl in this.ContentControls)
    {
        if (nativeControl.Type == Word.WdContentControlType.wdContentControlBuildingBlockGallery)
        {
            count++;
            Microsoft.Office.Tools.Word.BuildingBlockGalleryContentControl tempControl =
                this.Controls.AddBuildingBlockGalleryContentControl(nativeControl,
                "VSTOBuildingBlockContentControl" + count.ToString());
            buildingBlockControls.Add(tempControl);
        }
    }
}

Questa versione è valida per un componente aggiuntivo a livello di applicazione destinato a .NET Framework 4. Per utilizzare questo codice, incollarlo nella classe ThisAddIn del progetto del componente aggiuntivo e quindi chiamare il metodo CreateBuildingBlockControlsFromNativeControls dal metodo ThisAddIn_Startup.

Private buildingBlockControls As New System.Collections.Generic.List _
        (Of BuildingBlockGalleryContentControl)

Private Sub CreateBuildingBlockGalleryControlsFromNativeControls()
    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.wdContentControlBuildingBlockGallery Then
            count += 1
            Dim tempControl As Microsoft.Office.Tools.Word.BuildingBlockGalleryContentControl = _
                vstoDoc.Controls.AddBuildingBlockGalleryContentControl(nativeControl, _
                "VSTOBuildingBlockGalleryContentControl" + count.ToString())
            buildingBlockControls.Add(tempControl)
        End If
    Next nativeControl
End Sub
private System.Collections.Generic.List
   <Microsoft.Office.Tools.Word.BuildingBlockGalleryContentControl> buildingBlockControls;

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

    Document vstoDoc = Globals.Factory.GetVstoObject(this.Application.ActiveDocument);
    if (vstoDoc.ContentControls.Count <= 0)
    {
        System.Windows.Forms.MessageBox.Show("No content controls found in document.");                    
        return;
    }

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

    foreach (Word.ContentControl nativeControl in vstoDoc.ContentControls)
    {
        if (nativeControl.Type == Word.WdContentControlType.wdContentControlBuildingBlockGallery)
        {
            count++;
            Microsoft.Office.Tools.Word.BuildingBlockGalleryContentControl tempControl =
                vstoDoc.Controls.AddBuildingBlockGalleryContentControl(nativeControl,
                "VSTOBuildingBlockContentControl" + count.ToString());
            buildingBlockControls.Add(tempControl);
        }
    }
}

Nell'esempio di codice seguente viene creato un nuovo oggetto BuildingBlockGalleryContentControl per ciascuna raccolta nativa di blocchi predefiniti aggiunta dall'utente al documento.

Questa versione è valida per una personalizzazione a livello di documento. Per utilizzare il codice, incollarlo nella classe ThisDocument del progetto. In C# è inoltre necessario collegare il gestore eventi ThisDocument_BuildingBlockContentControlAfterAdd all'evento ContentControlAfterAdd della classe ThisDocument.

Private Sub ThisDocument_BuildingBlockContentControlAfterAdd(ByVal NewContentControl As Word.ContentControl, _
    ByVal InUndoRedo As Boolean) Handles Me.ContentControlAfterAdd

    If NewContentControl.Type = Word.WdContentControlType.wdContentControlBuildingBlockGallery Then
        Me.Controls.AddBuildingBlockGalleryContentControl(NewContentControl, _
            "BuildingBlockControl" + NewContentControl.ID)
    End If
End Sub
void ThisDocument_BuildingBlockContentControlAfterAdd(Word.ContentControl NewContentControl, bool InUndoRedo)
{
    if (NewContentControl.Type == Word.WdContentControlType.wdContentControlBuildingBlockGallery)
    {
        this.Controls.AddBuildingBlockGalleryContentControl(NewContentControl,
            "BuildingBlockControl" + NewContentControl.ID);
    }
}

Questa versione è valida per un componente aggiuntivo a livello di applicazione destinato a .NET Framework 4. Per utilizzare il codice, incollarlo nella classe ThisAddIn del progetto. È inoltre necessario collegare il gestore eventi ActiveDocument_BuildingBlockContentControlAfterAdd all'evento ContentControlAfterAdd del documento attivo.

Private Sub ActiveDocument_BuildingBlockContentControlAfterAdd( _
    ByVal NewContentControl As Word.ContentControl, _
    ByVal InUndoRedo As Boolean)

    Dim vstoDoc As Document = Globals.Factory.GetVstoObject(Me.Application.ActiveDocument)
    If NewContentControl.Type = Word.WdContentControlType. _
        wdContentControlBuildingBlockGallery Then
        vstoDoc.Controls.AddBuildingBlockGalleryContentControl(NewContentControl, _
            "BuildingBlockControl" + NewContentControl.ID)
    End If
End Sub
void ActiveDocument_BuildingBlockContentControlAfterAdd(
    Word.ContentControl NewContentControl, bool InUndoRedo)
{
    Document vstoDoc = Globals.Factory.GetVstoObject(this.Application.ActiveDocument);
    if (NewContentControl.Type == Word.WdContentControlType.wdContentControlBuildingBlockGallery)
    {
        vstoDoc.Controls.AddBuildingBlockGalleryContentControl(NewContentControl,
            "BuildingBlockControl" + NewContentControl.ID);
    }
}

Sicurezza di .NET Framework

Vedere anche

Riferimenti

ControlCollection Interfaccia

Overload AddBuildingBlockGalleryContentControl

Spazio dei nomi Microsoft.Office.Tools.Word

Altre risorse

Aggiunta di controlli ai documenti di Office in fase di esecuzione

Metodi di supporto per i controlli host

Procedura: aggiungere controlli del contenuto ai documenti di Word