Udostępnij za pośrednictwem


Ograniczenia programowy hosta elementów i kontrolek hosta

Każdy element hosta i kontroli host ma na celu zachowują się jak odpowiednie macierzysty programu Microsoft Office Word lub obiektu programu Microsoft Office Excel, z dodatkowych funkcji.Istnieją jednak pewne zasadnicze różnice między zachowanie elementami hosta a formantami hosta i macierzystego obiekty pakietu Office w czasie wykonywania.

Aby uzyskać ogólne informacje o elementami hosta a formantami hosta, zobacz Elementy hosta i Omówienie kontroli hosta.

Dotyczy: Informacje przedstawione w tym temacie dotyczą projektów na poziomie dokumentu i projektów na poziomie aplikacji dla następujących aplikacji: Excel 2013 i Excel 2010; Word 2013 i Word 2010. Aby uzyskać więcej informacji, zobacz Funkcje dostępne w aplikacji pakietu Office i typ projektu.

Programistyczne tworzenie elementów hosta

Programowo utworzyć lub otworzyć dokument, skoroszyt lub arkusz w czasie wykonywania za pomocą modelu obiektów programu Word lub Excel, element nie jest elementem hosta.Zamiast tego nowego obiektu jest obiektu macierzystego pakietu Office.Na przykład, jeśli korzystasz z Documents.Add metoda tworzenia nowego dokumentu programu Word w czasie wykonywania, będzie on native Microsoft.Office.Interop.Word.Document obiektu, a nie Microsoft.Office.Tools.Word.Document hosta, towaru.Podobnie, podczas tworzenia nowego arkusza w czasie wykonywania za pomocą Worksheets.Add metodę, Pobierz native Microsoft.Office.Interop.Excel.Worksheet obiektu, a nie Microsoft.Office.Tools.Excel.Worksheet hosta, towaru.

W projektach na poziomie dokumentu nie można utworzyć elementy hosta w czasie wykonywania.Host elementy mogą być tworzone tylko na czas projektowania projektów na poziomie dokumentu.Aby uzyskać więcej informacji, zobacz Element hosta dokumentu, Element hosta skoroszytu, i Element hosta arkusza.

W przypadku projektów na poziomie aplikacji, można utworzyć Microsoft.Office.Tools.Word.Document, Microsoft.Office.Tools.Excel.Workbook, lub Microsoft.Office.Tools.Excel.Worksheet host elementów w czasie wykonywania.Aby uzyskać więcej informacji, zobacz Rozszerzanie dokumenty programu Word oraz skoroszyty programu Excel w dodatki poziomie aplikacji w czasie wykonywania.

Programowo tworzenia formantów, Host

Programowo można dodawać formanty hosta do Microsoft.Office.Tools.Word.Document lub Microsoft.Office.Tools.Excel.Worksheet elementu hosta w czasie wykonywania.Aby uzyskać więcej informacji, zobacz Dodawanie formantów do dokumentów pakietu Office w czasie wykonywania.

Nie można dodać formanty hosta do native Microsoft.Office.Interop.Word.Document lub Microsoft.Office.Interop.Excel.Worksheet.

[!UWAGA]

Następujące formanty: host nie można dodać programistycznie do arkuszy lub dokumentów: XmlMappedRange, XMLNode, i XMLNodes.

Opis typu różnice między elementami hosta, formantami hosta i macierzystego obiekty pakietu Office

Dla każdego hosta, towaru i host control jest podstawowym macierzystego obiektu programu Microsoft Office Word lub Microsoft Office Excel.Dostęp do podstawowych obiektów za pomocą InnerObject hosta, towaru lub formantu hosta.Istnieje jednak nie można rzutować obiektu macierzystego urzędu do odpowiedniego elementu hosta lub Sterowanie hostem.Podczas próby rzutować obiektu macierzystego urzędu w odniesieniu do typu host lub host control, InvalidCastException jest generowany.

Istnieje kilka scenariuszy, gdzie różnice między typów elementów hosta a formantami hosta i macierzystych obiektów pakietu Office może mieć wpływ na swój kod.

ms178779.collapse_all(pl-pl,VS.110).gifFormanty Host przechodzi do metod i właściwości

W programie Word nie można przekazać sterowanie hostem metoda lub właściwość, która wymaga obiektu macierzystego programu Word jako parametr.Należy użyć InnerObject właściwość formantu hosta do zwracania podstawowych macierzystego obiektu programu Word.Na przykład, można przekazać Microsoft.Office.Interop.Word.Bookmark obiektu do metody, przekazując InnerObject właściwość Microsoft.Office.Tools.Word.Bookmark host control do metody.

W programie Excel, należy użyć InnerObject właściwość formantu hosta, aby przekazać sterowanie hosta do metody lub właściwości, jeżeli metoda lub właściwość obiektu źródłowego programu Excel.

Poniższy przykład tworzy Microsoft.Office.Tools.Excel.NamedRange kontroli i przekazuje ją do AutoFill metoda.W kodzie wykorzystano InnerObject właściwość nazwanego zakresu podstawowych Urząd zwraca Microsoft.Office.Interop.Excel.Range jest to wymagane przez AutoFill metoda.

Me.Range("A1").Value2 = "Monday"
Me.Range("A2").Value2 = "Tuesday"

Dim dayRange As Microsoft.Office.Tools.Excel.NamedRange = _
    Me.Controls.AddNamedRange(Me.Range("A1", "A7"), "dayRange")
Me.Range("A1", "A2").AutoFill(dayRange.InnerObject, Excel.XlAutoFillType.xlFillDays)
this.Range["A1"].Value2 = "Monday";
this.Range["A2"].Value2 = "Tuesday";

Microsoft.Office.Tools.Excel.NamedRange dayRange = 
    this.Controls.AddNamedRange(this.Range["A1", "A7"], "dayRange");
this.Range["A1", "A2"].AutoFill(dayRange.InnerObject, Excel.XlAutoFillType.xlFillDays);

ms178779.collapse_all(pl-pl,VS.110).gifZwracanych typów właściwości i metod macierzystych pakietu Office

Większości metod i właściwości elementów hosta zwracają macierzystego Office obiektu źródłowego podstawie element hosta.Na przykład Parent właściwość NamedRange host control w program Excel zwraca Microsoft.Office.Interop.Excel.Worksheet obiektu, a nie Microsoft.Office.Tools.Excel.Worksheet hosta, towaru.Podobnie Parent właściwość RichTextContentControl host formantu w programie Word powrót Microsoft.Office.Interop.Word.Document obiektu, a nie Microsoft.Office.Tools.Word.Document hosta, towaru.

ms178779.collapse_all(pl-pl,VS.110).gifUzyskiwanie dostępu do kolekcji formantów hosta

Visual Studio 2010 Tools for Office Runtime Nie przewiduje poszczególnych zbiorów każdego typu formantu hosta.Zamiast tego należy użyć Controls właściwość elementu hosta iterację wszystkich formantów zarządzanych (formanty hosta i formanty Windows Forms) w dokumencie lub arkuszu, a następnie poszukaj kontroli elementów, które pasuje do typu host, możesz są zainteresowani.Poniższy przykład kodu sprawdza każdego formantu w dokumencie programu Word i określa, czy formant jest Microsoft.Office.Tools.Word.Bookmark.

Dim targetControl As Object
For Each targetControl In Me.Controls

    If TypeOf (targetControl) Is Microsoft.Office.Tools.Word.Bookmark Then
        Dim bookMark As Microsoft.Office.Tools.Word.Bookmark = _
            CType(targetControl, Microsoft.Office.Tools.Word.Bookmark)

        ' Do some work with the book mark here.
    End If
Next
foreach (object targetControl in this.Controls)
{
    Microsoft.Office.Tools.Word.Bookmark bookMark =
        targetControl as Microsoft.Office.Tools.Word.Bookmark;

    if (bookMark != null)
    {
        // Do some work with the bookmark here.
    }
}

Aby uzyskać więcej informacji o Controls właściwość elementów hosta, zobacz Dodawanie formantów do dokumentów pakietu Office w czasie wykonywania.

Modele obiektów programu Word i Excel zawierają właściwości, które narażają kolekcje macierzystego kontroli dokumentów i arkuszy.Nie można uzyskać dostępu do formantów zarządzane przy użyciu tych właściwości.Na przykład, nie jest możliwe do wyliczenia każdego Microsoft.Office.Tools.Word.Bookmark host control w dokumencie przy użyciu Bookmarks właściwość Microsoft.Office.Interop.Word.Document lub Bookmarks właściwość Microsoft.Office.Tools.Word.Document.Te właściwości obejmują tylko Microsoft.Office.Interop.Word.Bookmark formanty w dokumencie. nie zawierają Microsoft.Office.Tools.Word.Bookmark host formantów w dokumencie.

Zobacz też

Informacje

Worksheet.Controls

Document.Controls

Koncepcje

Elementy hosta i Omówienie kontroli hosta

Automatyzowanie programu Word przy użyciu obiektów rozszerzony

Automatyzowanie programu Excel przy użyciu obiektów rozszerzony

Element hosta arkusza

Element hosta skoroszytu

Element hosta dokumentu