Udostępnij za pośrednictwem


Metoda ControlCollection.AddBuildingBlockGalleryContentControl — (ContentControl, String)

Dodaje nowy BuildingBlockGalleryContentControl do kolekcji.Nowy formant jest oparty na macierzysty formant zawartości, który już znajduje się w dokumencie.

Przestrzeń nazw:  Microsoft.Office.Tools.Word
Zestaw:  Microsoft.Office.Tools.Word (w Microsoft.Office.Tools.Word.dll)

Składnia

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

Parametry

Wartość zwracana

Typ: Microsoft.Office.Tools.Word.BuildingBlockGalleryContentControl
BuildingBlockGalleryContentControl Do dokumentu dodano.

Wyjątki

Wyjątek Warunek
ArgumentNullException

contentControl wynosi nullodwołanie o wartości null (Nothing w języku Visual Basic).

-lub-

namejest nullodwołanie o wartości null (Nothing w języku Visual Basic) lub ma zerową długość.

ControlNameAlreadyExistsException

Formant o tej samej nazwie jest już w ControlCollection.

ArgumentException

contentControlnie jest galerii bloków konstrukcyjnych (to znaczy, Type właściwość contentControl nie ma wartości Microsoft.Office.Interop.Word.WdContentControlType.wdContentControlBuildingBlockGallery).

Uwagi

Ta metoda służy do dodawania nowego BuildingBlockGalleryContentControl opartego na macierzystego formantu zawartości w dokumencie.Jest to przydatne podczas tworzenia BuildingBlockGalleryContentControl w czasie wykonywania, a chcesz odtworzyć tego samego formantu przy następnym otwarciu dokumentu.Aby uzyskać więcej informacji, zobacz Dodawanie formantów do dokumentów pakietu Office w czasie wykonywania.

Przykłady

Poniższy przykład kodu tworzy nowy BuildingBlockGalleryContentControl dla każdej galerii bloków konstrukcyjnych macierzystego, który już znajduje się w dokumencie.

Ta wersja jest dla dostosowania poziomu dokumentu.Aby użyć tego kodu, wklej go do ThisDocument klasy w projekcie i wywołanie CreateBuildingBlockControlsFromNativeControls metodę z ThisDocument_Startup metody.

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);
        }
    }
}

Ta wersja jest na poziomie aplikacji dodatek jest przeznaczony dla .NET Framework 4 lub .NET Framework 4.5.Aby użyć tego kodu, wklej go do ThisAddIn klasy w dodatku projektu, a wywołanie CreateBuildingBlockControlsFromNativeControls metodę z ThisAddIn_Startup metody.

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);
        }
    }
}

Poniższy przykład kodu tworzy nowy BuildingBlockGalleryContentControl dla każdej galerii macierzystych bloków konstrukcyjnych, które użytkownik dodaje do dokumentu.

Ta wersja jest dla dostosowania poziomu dokumentu.Aby użyć tego kodu, wklej go do ThisDocument klasy w projekcie.Język C#, należy również dołączyć ThisDocument_BuildingBlockContentControlAfterAdd obsługi zdarzeń do ContentControlAfterAdd zdarzenia ThisDocument klasy.

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);
    }
}

Ta wersja jest na poziomie aplikacji dodatek jest przeznaczony dla .NET Framework 4 lub .NET Framework 4.5.Aby użyć tego kodu, wklej go do ThisAddIn klasy w projekcie.Ponadto należy dołączyć ActiveDocument_BuildingBlockContentControlAfterAdd obsługi zdarzeń do ContentControlAfterAdd zdarzeń aktywnego dokumentu.

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);
    }
}

Zabezpieczenia programu .NET Framework

Zobacz też

Informacje

ControlCollection Interfejs

Przeciążenie AddBuildingBlockGalleryContentControl

Przestrzeń nazw Microsoft.Office.Tools.Word

Inne zasoby

Dodawanie formantów do dokumentów pakietu Office w czasie wykonywania

Porady: dodawanie formantów zawartości do dokumentów programu Word