Dodawanie kontrolek do dokumentów pakietu Office w czasie wykonywania
Kontrolki można dodawać do dokumentu programu Microsoft Office Word i skoroszytu programu Microsoft Office Excel w czasie wykonywania. Można je również usunąć w czasie wykonywania. Kontrolki dodawane lub usuwane w czasie wykonywania są nazywane kontrolkami dynamicznymi.
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.
W tym temacie opisano następujące kwestie:
Zarządzanie kontrolkami w czasie wykonywania przy użyciu kolekcji kontrolek.
Dodawanie kontrolek formularzy systemu Windows do dokumentów.
Zarządzanie kontrolkami w czasie wykonywania przy użyciu kolekcji kontrolek
Aby dodać, pobrać lub usunąć kontrolki w czasie wykonywania, użyj metod ControlCollection pomocnika obiektów i ControlCollection .
Sposób uzyskiwania dostępu do tych obiektów zależy od typu opracowywanego projektu:
W projekcie na poziomie dokumentu dla programu Excel użyj Controls właściwości
Sheet1
klasy ,Sheet2
iSheet3
. Aby uzyskać więcej informacji na temat tych klas, zobacz Element hosta arkusza.W projekcie na poziomie dokumentu dla programu Word użyj Controls właściwości
ThisDocument
klasy . Aby uzyskać więcej informacji na temat tej klasy, zobacz dokument elementu hosta.W projekcie dodatku VSTO dla programu Excel lub Word użyj
Controls
właściwości elementu Worksheet lub Document wygenerowanego w czasie wykonywania. Aby uzyskać więcej informacji na temat generowania tych obiektów w czasie wykonywania, zobacz Rozszerzanie dokumentów programu Word i skoroszytów programu Excel w dodatku VSTO w czasie wykonywania.
Dodaj kontrolki
Typy ControlCollection i ControlCollection obejmują metody pomocnicze, których można użyć do dodawania kontrolek hosta i typowych kontrolek formularzy systemu Windows do dokumentów i arkuszy. Każda nazwa metody ma klasę formantu formatuAdd
, gdzie klasa kontrolki jest nazwą klasy, którą chcesz dodać. Aby na przykład dodać kontrolkę NamedRange do dokumentu, użyj AddNamedRange metody .
Poniższy przykładowy kod dodaje element NamedRange do Sheet1
elementu w projekcie na poziomie dokumentu dla programu Excel.
Excel.Range range1 = Globals.Sheet1.Range["A1", "D5"];
Microsoft.Office.Tools.Excel.NamedRange namedRange1 =
Globals.Sheet1.Controls.AddNamedRange(range1, "ChartSource");
Kontrolki dostępu i usuwania
Możesz użyć Controls
właściwości obiektu Worksheet lub Document do iterowania wszystkich kontrolek w dokumencie, w tym kontrolek dodanych w czasie projektowania. Kontrolki dodawane w czasie projektowania są również nazywane kontrolkami statycznych.
Kontrolki dynamiczne można usunąć, wywołując Delete
metodę kontrolki lub wywołując Remove
metodę każdej kolekcji Formanty. W poniższym przykładzie kodu użyto Remove metody , aby usunąć element NamedRange z Sheet1
projektu na poziomie dokumentu dla programu Excel.
Nie można usunąć statycznych kontrolek w czasie wykonywania. Jeśli spróbujesz użyć Delete
metody or Remove
w celu usunięcia kontrolki statycznej, CannotRemoveControlException zostanie zgłoszony element .
Uwaga
Nie usuwaj programowo kontrolek w procedurze Shutdown
obsługi zdarzeń dokumentu. Elementy interfejsu użytkownika dokumentu nie są już dostępne po wystąpieniu Shutdown
zdarzenia. Jeśli chcesz usunąć kontrolki przed zamknięciem dokumentu, dodaj kod do programu obsługi zdarzeń dla innego zdarzenia, takiego jak BeforeClose word lub BeforeSave BeforeClose, lub BeforeSave dla programu Excel.
Dodawanie kontrolek hosta do dokumentów
Podczas programowego dodawania kontrolek hosta do dokumentów należy podać nazwę, która jednoznacznie identyfikuje kontrolkę, i należy określić, gdzie dodać kontrolkę do dokumentu. Aby uzyskać szczegółowe instrukcje, zobacz następujące tematy:
Instrukcje: dodawanie kontrolek zawartości do dokumentów programu Word
Instrukcje: dodawanie kontrolek zakładki do dokumentów programu Word
Aby uzyskać więcej informacji na temat kontrolek hostów, zobacz Host items and host controls overview (Omówienie elementów hosta i kontrolek hostów).
Gdy dokument zostanie zapisany, a następnie zamknięty, wszystkie dynamicznie utworzone kontrolki hosta zostaną odłączone od ich zdarzeń i utracą funkcjonalność powiązania danych. Możesz dodać kod do rozwiązania, aby ponownie utworzyć kontrolki hosta po ponownym otwarciu dokumentu. Aby uzyskać więcej informacji, zobacz Utrwalanie kontrolek dynamicznych w dokumentach pakietu Office.
Uwaga
Metody pomocnika nie są udostępniane dla następujących kontrolek hosta, ponieważ tych kontrolek nie można dodawać programowo do dokumentów: XmlMappedRange, XMLNodei XMLNodes.
Dodawanie kontrolek Windows Forms do dokumentów
Po programowym dodaniu kontrolki Windows Forms do dokumentu należy podać lokalizację kontrolki i nazwę, która jednoznacznie identyfikuje kontrolkę. Środowisko uruchomieniowe Visual Studio Tools dla pakietu Office udostępnia metody pomocnicze dla każdej kontrolki. Te metody są przeciążone, dzięki czemu można przekazać zakres lub określone współrzędne dla lokalizacji kontrolki.
Gdy dokument zostanie zapisany, a następnie zamknięty, wszystkie dynamicznie utworzone kontrolki formularzy systemu Windows zostaną usunięte z dokumentu. Możesz dodać kod do rozwiązania, aby ponownie utworzyć kontrolki po ponownym otwarciu dokumentu. Jeśli tworzysz dynamiczne kontrolki Windows Forms przy użyciu dodatku VSTO, otoki ActiveX dla kontrolek pozostają w dokumencie. Aby uzyskać więcej informacji, zobacz Utrwalanie kontrolek dynamicznych w dokumentach pakietu Office.
Uwaga
Nie można programowo dodać kontrolek formularzy systemu Windows do chronionych dokumentów. Jeśli programowo wyłączysz ochronę dokumentu programu Word lub arkusza programu Excel w celu dodania kontrolki, musisz napisać dodatkowy kod, aby usunąć otokę ActiveX kontrolki po zamknięciu dokumentu. Otoka ActiveX kontrolki nie jest automatycznie usuwana z chronionych dokumentów.
Dodaj formanty niestandardowe
Jeśli chcesz dodać element Control , który nie jest obsługiwany przez dostępne metody pomocnicze, takie jak niestandardowa kontrolka użytkownika, użyj następujących metod:
W przypadku programu Excel użyj jednej z AddControl metod ControlCollection obiektu.
W przypadku programu Word użyj jednej z AddControl metod ControlCollection obiektu.
Aby dodać kontrolkę, przekaż Controlelement , lokalizację dla kontrolki i nazwę, która jednoznacznie identyfikuje kontrolkę do
AddControl
metody . MetodaAddControl
zwraca obiekt, który definiuje sposób interakcji kontrolki z arkuszem lub dokumentem. MetodaAddControl
zwraca ControlSite obiekt (dla programu Excel) lub ControlSite obiekt (dla programu Word).W poniższym przykładzie kodu pokazano, jak za pomocą AddControl metody dynamicznie dodać niestandardową kontrolkę użytkownika do arkusza w projekcie programu Excel na poziomie dokumentu. W tym przykładzie kontrolka użytkownika nosi nazwę
UserControl1
, a nazwa Range torange1
. Aby użyć tego przykładu, uruchom go zSheet
klasy n w projekcie.
Używanie elementów członkowskich kontrolek niestandardowych
Po użyciu jednej z AddControl
metod dodawania kontrolki do arkusza lub dokumentu masz teraz dwa różne obiekty sterujące:
Kontrolka Control reprezentująca kontrolkę niestandardową.
Obiekt
ControlSite
,OLEObject
lubOLEControl
reprezentujący kontrolkę po dodaniu jej do arkusza lub dokumentu.Wiele właściwości i metod jest współużytkowanych między tymi kontrolkami. Ważne jest, aby uzyskać dostęp do tych członków za pomocą odpowiedniej kontroli:
Aby uzyskać dostęp do elementów członkowskich należących tylko do kontrolki niestandardowej, użyj elementu Control.
Aby uzyskać dostęp do elementów członkowskich, które są współużytkowane przez kontrolki, użyj
ControlSite
obiektu ,OLEObject
lubOLEControl
.Jeśli uzyskujesz dostęp do udostępnionego Controlelementu członkowskiego z usługi , może to zakończyć się niepowodzeniem bez ostrzeżenia lub powiadomienia lub może spowodować nieprawidłowe wyniki. Zawsze używaj metod lub właściwości
ControlSite
obiektu ,OLEObject
lubOLEControl
, chyba że wymagana metoda lub właściwość nie jest dostępna; tylko wtedy należy odwołać się do Controlobiektu .Na przykład zarówno ControlSite klasa, jak i Control klasa mają
Top
właściwość . Aby uzyskać lub ustawić odległość między górną częścią kontrolki a górną częścią dokumentu, użyj Top właściwości ControlSite, a nie Top właściwości Control.
Powiązana zawartość
- Kontrolki dotyczące dokumentów pakietu Office
- Utrwalanie kontrolek dynamicznych w dokumentach pakietu Office
- Instrukcje: dodawanie kontrolek ListObject do arkuszy
- Instrukcje: dodawanie kontrolek NamedRange do arkuszy
- Instrukcje: dodawanie kontrolek wykresu do arkuszy
- Instrukcje: dodawanie kontrolek zawartości do dokumentów programu Word
- Instrukcje: dodawanie kontrolek zakładki do dokumentów programu Word
- Omówienie kontrolek formularzy systemu Windows w dokumentach pakietu Office
- Instrukcje: dodawanie kontrolek formularzy systemu Windows do dokumentów pakietu Office