Omówienie elementów hosta i kontrolek hosta
Elementy hosta i kontrolki hosta to typy, które ułatwiają udostępnianie modelu programowania dla rozwiązań pakietu Office tworzonych przy użyciu narzędzi programistycznych pakietu Office w programie Visual Studio. Elementy hosta i kontrolki hosta umożliwiają interakcję z modelami obiektów programów Microsoft Office Word i Microsoft Office Excel, które są oparte na modelu COM, podobnie jak interakcja z obiektami zarządzanymi, takimi jak kontrolki Windows Forms.
Dotyczy: informacje w tym temacie dotyczą projektów na poziomie dokumentu i projektów dodatków VSTO dla programów Excel i Word. Aby uzyskać więcej informacji, zobacz Funkcje dostępne przez aplikacja pakietu Office lication i typ projektu.
Elementy hosta
Elementy hosta to typy, które znajdują się w górnej części hierarchii modelu obiektów w projektach pakietu Office. Środowisko uruchomieniowe Visual Studio Tools dla pakietu Office definiuje następujące elementy hosta dla rozwiązań word i Excel:
-
Każdy z tych typów rozszerza obiekt, który istnieje natywnie w modelu obiektów programu Word lub Excel, nazywany natywnym obiektem pakietu Office. Na przykład Document element hosta rozszerza Document obiekt, który jest zdefiniowany w podstawowym zestawie międzyoperacyjności dla programu Word.
Elementy hosta zazwyczaj mają tę samą podstawową funkcjonalność co odpowiadające im obiekty pakietu Office, ale są rozszerzone o następujące funkcje:
Możliwość hostowania kontrolek zarządzanych, w tym kontrolek hosta i kontrolek Windows Forms.
Bogatsze modele zdarzeń. Niektóre zdarzenia dokumentu, skoroszytu i arkusza w natywnych modelach obiektów programu Word i Excel są wywoływane tylko na poziomie aplikacji. Elementy hosta udostępniają te zdarzenia na poziomie dokumentu, aby ułatwić obsługę zdarzeń dla określonego dokumentu.
Omówienie elementów hosta w projektach na poziomie dokumentu
W projektach na poziomie dokumentu elementy hosta zapewniają punkt wejścia dla kodu i mają projektantów, którzy ułatwiają opracowywanie rozwiązania.
Document Elementy hosta i Worksheet mają skojarzonych projektantów, którzy są wizualną reprezentacją dokumentu lub arkusza, na przykład projektanta formularzy systemu Windows. Za pomocą tego projektanta można modyfikować zawartość dokumentu lub arkusza bezpośrednio w programie Word lub Excel oraz przeciągać kontrolki na powierzchnię projektową. Aby uzyskać więcej informacji, zobacz Document host item (Element hosta dokumentu) i Arkusz host item (Element hosta arkusza).
Element Workbook hosta nie działa jako kontener dla kontrolek, które mają interfejs użytkownika. Zamiast tego projektant tego elementu hosta działa jako zasobnik składnika, który umożliwia przeciąganie składnika, takiego jak , DataSetna jego powierzchni projektowej. Aby uzyskać więcej informacji, zobacz Element hosta skoroszytu.
Nie można programowo tworzyć elementów hosta w projektach na poziomie dokumentu. Zamiast tego należy użyć ThisDocument
klas , ThisWorkbook
lub Sheet
n , które program Visual Studio automatycznie generuje w projekcie w czasie projektowania. Te wygenerowane klasy pochodzą z elementów hosta i zapewniają punkt wejścia dla kodu. Aby uzyskać więcej informacji, zobacz Programowe ograniczenia elementów hosta i kontrolek hosta.
Omówienie elementów hosta w projektach dodatków VSTO
Podczas tworzenia dodatku VSTO nie masz domyślnie dostępu do żadnych elementów hosta. Można jednak wygenerować Documentelementy , Workbooki Worksheet hostów w dodatku Word i Excel VSTO w czasie wykonywania.
Po wygenerowaniu elementu hosta można wykonywać zadania, takie jak dodawanie kontrolek do dokumentów. Aby uzyskać więcej informacji, zobacz Rozszerzanie dokumentów programu Word i skoroszytów programu Excel w dodatku VSTO w czasie wykonywania.
Kontrolki hosta
Kontrolki hosta rozszerzają różne obiekty interfejsu użytkownika w modelach obiektów programów Word i Excel, takich jak Microsoft.Office.Interop.Word.ContentControl
i Range .
Następujące kontrolki hosta są dostępne dla projektów programu Excel:
-
Następujące kontrolki hosta są dostępne dla projektów programu Word:
-
Kontrolki hosta dodawane do dokumentów pakietu Office zachowują się jak natywne obiekty pakietu Office; Jednak kontrolki hosta mają dodatkowe funkcje, w tym zdarzenia i możliwości powiązania danych. Jeśli na przykład chcesz przechwycić zdarzenia obiektu natywnego Range w programie Excel, musisz najpierw obsłużyć zdarzenie zmiany arkusza. Następnie należy określić, czy zmiana wystąpiła Rangew obiekcie . Z kolei kontrolka NamedRange hosta ma Change zdarzenie, które można obsługiwać bezpośrednio.
Relacja między elementem hosta i kontrolkami hosta jest podobna do relacji między kontrolkami Formularz systemu Windows i Windows Forms. Podobnie jak w przypadku umieszczenia kontrolki pola tekstowego w formularzu systemu Windows, należy umieścić kontrolkę NamedRange na elemencie Worksheet hosta. Poniższa ilustracja przedstawia relację między elementami hosta i kontrolkami hosta.
Kontrolki formularzy systemu Windows można również używać w rozwiązaniach pakietu Office, dodając je bezpośrednio do powierzchni dokumentów programów Word i Excel. Aby uzyskać więcej informacji, zobacz Kontrolki formularzy systemu Windows w dokumentach pakietu Office — omówienie.
Uwaga
Dodawanie kontrolek hosta lub kontrolek formularzy systemu Windows do dokumentu podrzędnego programu Word nie jest obsługiwane.
Dodawanie kontrolek hosta do dokumentów
W projektach na poziomie dokumentu można dodawać kontrolki hosta do dokumentów programu Word lub arkuszy programu Excel w czasie projektowania w następujący sposób:
Dodaj kontrolki hosta do dokumentu w czasie projektowania w taki sam sposób, jak w przypadku dodawania obiektu natywnego.
Przeciągnij kontrolki hosta z przybornika do dokumentów i arkuszy. Kontrolki hosta programu Excel są dostępne na karcie Kontrolki programu Excel w projektach programu Excel, a kontrolki hosta programu Word są dostępne na karcie Kontrolki programu Word w projektach programu Word.
Przeciągnij kontrolki hosta z okna Źródła danych do dokumentów i arkuszy. Dzięki temu można dodawać kontrolki, które są już powiązane z danymi. Aby uzyskać więcej informacji, zobacz Wiązanie danych z kontrolkami w rozwiązaniach pakietu Office.
W projektach dodatków na poziomie dokumentu i narzędzi VSTO można również dodać niektóre kontrolki hosta do dokumentów w czasie wykonywania. Aby uzyskać więcej informacji, zobacz Dodawanie kontrolek do dokumentów pakietu Office w czasie wykonywania.
Aby uzyskać więcej informacji na temat dodawania kontrolek hosta do dokumentów, zobacz następujące tematy:
Instrukcje: dodawanie kontrolek zakładki do dokumentów programu Word
Instrukcje: dodawanie kontrolek zawartości do dokumentów programu Word
Instrukcje: dodawanie kontrolek XMLNode do dokumentów programu Word
Instrukcje: dodawanie kontrolek XMLNodes do dokumentów programu Word
Kontrolki hosta nazw
Po przeciągnięciu kontrolki hosta z przybornika do dokumentu kontrolka zostanie automatycznie nazwana przy użyciu typu kontrolki z liczbą przyrostową na końcu. Na przykład zakładki mają nazwę bookmark1, bookmark2 itd. Jeśli używasz natywnej funkcjonalności programu Word lub Excel do dodawania kontrolki, możesz nadać jej określoną nazwę w momencie jego utworzenia. Możesz również zmienić nazwy kontrolek, zmieniając wartość właściwości Name w oknie Właściwości .
Uwaga
Nie można używać wyrazów zarezerwowanych do nazywania kontrolek hosta. Jeśli na przykład dodasz kontrolkę NamedRange do arkusza i zmienisz nazwę na System, podczas kompilowania projektu wystąpią błędy.
Usuwanie kontrolek hosta
W projektach na poziomie dokumentu możesz usunąć kontrolki hosta w czasie projektowania, wybierając kontrolkę w arkuszu programu Excel lub dokumencie programu Word i naciskając klawisz Usuń . Aby usunąć NamedRange kontrolki, należy jednak użyć okna dialogowego Definiowanie nazwy w programie Excel.
Jeśli dodasz kontrolkę hosta do dokumentu w czasie projektowania, nie należy go programowo usuwać w czasie wykonywania, ponieważ następnym razem, gdy spróbujesz użyć kontrolki w kodzie, zostanie zgłoszony wyjątek. Metoda Delete
kontrolki hosta usuwa tylko kontrolki hosta, które są dodawane do dokumentu w czasie wykonywania. Jeśli wywołasz metodę Delete
kontrolki hosta, która została utworzona w czasie projektowania, zostanie zgłoszony wyjątek.
Na przykład Delete metoda klasy tylko pomyślnie usuwa NamedRange element NamedRange , jeśli został on programowo dodany do arkusza, który jest znany jako dynamiczne tworzenie kontrolek hosta. Dynamicznie tworzone kontrolki hosta można również usunąć, przekazując nazwę kontrolki do Remove
metody Controls lub Controls . Aby uzyskać więcej informacji, zobacz Dodawanie kontrolek do dokumentów pakietu Office w czasie wykonywania.
Jeśli użytkownicy końcowi usuną kontrolkę hosta z dokumentu w czasie wykonywania, rozwiązanie może zakończyć się niepowodzeniem w nieoczekiwany sposób. Funkcje ochrony dokumentów w programach Word i Excel umożliwiają ochronę kontrolek hosta przed usunięciem. Aby uzyskać więcej informacji, zobacz Office development samples and walkthroughs (Przykłady i przewodniki dotyczące programowania w pakiecie Office).
Uwaga
Nie usuwaj programowo kontrolek podczas Shutdown
obsługi zdarzeń dokumentu lub arkusza. Elementy interfejsu Shutdown
użytkownika nie są już dostępne w przypadku wystąpienia zdarzenia. Jeśli chcesz usunąć kontrolki przed zamknięciem aplikacji, dodaj kod do innej procedury obsługi zdarzeń, takiej jak BeforeClose
lub BeforeSave
.
Program pod kątem zdarzeń kontroli hosta
Jednym ze sposobów rozszerzania obiektów pakietu Office przez host jest dodanie zdarzeń. Na przykład Range obiekt w programie Excel i Bookmark obiekcie w programie Word nie mają zdarzeń, ale środowisko uruchomieniowe Visual Studio Tools dla pakietu Office rozszerza te obiekty przez dodanie programowalnych zdarzeń. Dostęp do tych zdarzeń i kod można uzyskać w taki sam sposób, jak w przypadku zdarzeń kontrolek w formularzach systemu Windows: za pośrednictwem listy rozwijanej zdarzeń w języku Visual Basic i strony właściwości zdarzenia w języku C#. Aby uzyskać więcej informacji, zobacz Przewodnik: Program względem zdarzeń kontrolki NamedRange.
Uwaga
Nie należy ustawiać EnableEvents właściwości Application obiektu w programie Excel na wartość false. Ustawienie tej właściwości na wartość false uniemożliwia programowi Excel zgłaszanie wszelkich zdarzeń, w tym zdarzeń kontrolek hosta.
Powiązana zawartość
- Ograniczenia programowe elementów hosta i kontrolek hosta
- Dodatki programu VSTO
- Dostosowania na poziomie dokumentu programu
- Automatyzowanie programu Word przy użyciu obiektów rozszerzonych
- Automatyzowanie programu Excel przy użyciu obiektów rozszerzonych
- Kontrolki dotyczące dokumentów pakietu Office
- Wiązanie danych z kontrolkami w rozwiązaniach pakietu Office