Ograniczenia programowe elementów hosta i formantów 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 Przegląd obiektów hosta i formantów hosta.
Zastosowanie: Informacje przedstawione w tym temacie mają zastosowanie do projektów na poziomie dokumentu i 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 aplikacjach 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 Document obiektu, a nie Document hosta, towaru.Podobnie, podczas tworzenia nowego arkusza w czasie wykonywania za pomocą Worksheets.Add metodę, Pobierz native Worksheet obiektu, a nie 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ć Document, Workbook, lub Worksheet host elementów w czasie wykonywania.Aby uzyskać więcej informacji, zobacz Rozszerzanie dokumentów programu Word i skoroszytów w programie Excel w czasie wykonywania w dodatkach na poziomie aplikacji.
Programowo tworzenia formantów, Host
Programowo można dodawać formanty hosta do Document lub 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 Document lub 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.
Formanty 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ć Bookmark obiektu do metody, przekazując InnerObject właściwość 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 NamedRange kontroli i przekazuje ją do AutoFill metoda.W kodzie wykorzystano InnerObject właściwość nazwanego zakresu podstawowych Urząd zwraca 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);
Zwracanych 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 Worksheet obiektu, a nie Worksheet hosta, towaru.Podobnie Parent właściwość RichTextContentControl host formantu w programie Word powrót Document obiektu, a nie Document hosta, towaru.
Uzyskiwanie dostępu do kolekcji formantów hosta
Visual Studio 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 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 Bookmark host control w dokumencie przy użyciu Bookmarks właściwość Document lub Bookmarks właściwość Document.Te właściwości obejmują tylko Bookmark formanty w dokumencie. nie zawierają Bookmark host formantów w dokumencie.
Zobacz też
Informacje
Koncepcje
Przegląd obiektów hosta i formantów hosta
Automatyzowanie programu Word za pomocą obiektów rozszerzonych
Automatyzowanie programu Excel za pomocą obiektów rozszerzonych