Udostępnij za pośrednictwem


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

Formanty można dodać do dokumentu programu Microsoft Office Word i Microsoft Office Excel skoroszyt, w czasie wykonywania.Można również usunąć je w czasie wykonywania.Formanty, które dodać lub usunąć w czasie wykonywania są nazywane formantów dynamicznych.

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.

W tym temacie opisano następujące czynności:

  • Zarządzanie kontroli w czasie wykonywania za pomocą kolekcje sterowania.

  • Dodawanie formantów hosta do dokumentów.

  • Dodawanie formantów Windows Forms do dokumentów.

łącze do wideo Aby wyświetlić pokrewne wideo demonstracyjne, zobacz jak zrobić I: dodać formanty do powierzchni dokumentu w czasie wykonywania?.

Zarządzanie kontroli w czasie wykonywania za pomocą kolekcje kontroli

Aby dodać, uzyskać lub usuwanie formantów w czasie wykonywania, należy użyć metody pomocnika z ControlCollection i ControlCollection obiektów.

Sposób dostępu do tych obiektów zależy od typu opracowywania projektu:

Dodawanie formantów

ControlCollection i ControlCollection , należą metody pomocnika, które można użyć, aby dodać formanty hosta i wspólne Windows Forms do dokumentów i arkuszy.Nazwa każdej metody ma format Addklasy control, gdzie Klasa sterowania jest nazwą klasy formantu, który chcesz dodać. Na przykład, aby dodać NamedRange formantu do dokumentu, użyj AddNamedRange metoda.

Poniższy przykład kodu dodaje NamedRange do Sheet1 w projekcie poziomie dokumentu dla programu Excel.

Dim range1 As Excel.Range = Globals.Sheet1.Range("A1", "D5")
Dim namedRange1 As Microsoft.Office.Tools.Excel.NamedRange = _
    Globals.Sheet1.Controls.AddNamedRange(range1, "ChartSource")
Excel.Range range1 = Globals.Sheet1.Range["A1", "D5"];
Microsoft.Office.Tools.Excel.NamedRange namedRange1 =
    Globals.Sheet1.Controls.AddNamedRange(range1, "ChartSource");

Uzyskiwanie dostępu do i usuwanie formantów

Można użyć Controls właściwość Worksheet lub Document do iteracji wszystkich formantów w dokumencie, w tym formanty dodawane w czasie projektowania.Formanty, które można dodać w czasie projektowania są również nazywane formantów statycznych.

Można usunąć formantów dynamicznych, wywołując Delete metoda kontroli lub przez wywołanie Remove metoda każdego Controls kolekcji.Następujący kod w przykładzie wykorzystano Remove metoda, aby usunąć NamedRange z Sheet1 w projekcie poziomie dokumentu dla programu Excel.

Globals.Sheet1.Controls.Remove("ChartSource")
Globals.Sheet1.Controls.Remove("ChartSource");

Nie można usunąć statyczne formantów w czasie wykonywania.Jeśli spróbujesz użyć Delete lub Remove metoda, aby usunąć formant statyczne, CannotRemoveControlException zostanie wyrzucony.

[!UWAGA]

Nie usuwaj programowo formantów w Shutdown obsługi zdarzenia dokumentu.Elementy interfejsu użytkownika dokumentu nie są już dostępne podczas Shutdown zdarzenie jest wywoływane.Jeśli chcesz usunąć formanty, przed zamknięciem dokumentu, Dodaj kod obsługi zdarzenia dla innego zdarzenia, takie jak Document.BeforeClose lub Document.BeforeSave dla programu Word, lub Workbook.BeforeClose, lub Workbook.BeforeSave dla programu Excel.

Dodawanie formantów hosta do dokumentów

Po dodaniu programowo formantami hosta do dokumentów, należy podać nazwę, która jednoznacznie identyfikuje formant i należy określić gdzie dodać formant w dokumencie.Aby uzyskać szczegółowe instrukcje zobacz następujące tematy:

Aby uzyskać więcej informacji na temat formantów hosta zobacz Przegląd obiektów hosta i formantów hosta.

Gdy dokument jest zapisane, a następnie zamknięte, wszystkie formanty dynamicznie utworzona hosta są odłączeni od ich zdarzenia i tracą ich funkcji wiązania danych.Można dodać kod do rozwiązania do odtworzenia formantami hosta, po otwarciu dokumentu.Aby uzyskać więcej informacji, zobacz Przechowywanie formantów dynamicznych w dokumentach pakietu Office.

[!UWAGA]

Metody pomocnika nie są dostarczane dla następujących hosta formantów, ponieważ te formanty nie można dodać programistycznie do dokumentów: XmlMappedRange, XMLNode, i XMLNodes.

Dodawanie formantów Windows Forms do dokumentów

Po dodaniu programowego sterowania Windows Forms do dokumentu, musisz podać lokalizację kontroli i nazwę, która jednoznacznie identyfikuje formant.Visual Studio Tools for Office Runtime Zawiera metody pomocnika dla każdego formantu.Te metody są przeciążone, dzięki czemu można przekazać zakres lub określonych współrzędnych lokalizacji kontroli.

Gdy dokument jest zapisane, a następnie zamknięte, wszystkie formanty dynamicznie utworzona Windows Forms są usunięte z dokumentu.Można dodać kod do rozwiązania ponownego tworzenia formantów, po otwarciu dokumentu.Jeśli tworzysz formantów dynamicznych Windows Forms za pomocą dodatku poziomie aplikacji, otoki ActiveX dla formantów są pozostawiane w dokumencie.Aby uzyskać więcej informacji, zobacz Przechowywanie formantów dynamicznych w dokumentach pakietu Office.

[!UWAGA]

Formantów Windows Forms nie można dodać programistycznie do dokumentów chronionych.Jeśli użytkownik programowo Niechronienie dokumentu programu Word lub arkusza programu Excel, aby dodać formant, należy napisać dodatkowy kod, aby usunąć formant ActiveX otoki, gdy dokument jest zamknięty.Formant ActiveX otoki nie jest automatycznie usuwany z chronionych dokumentów.

Dodawania formantów niestandardowych

Jeśli chcesz dodać Control , nie jest obsługiwany przez metody pomocnika dostępne, takie jak formant użytkownika niestandardowego, należy użyć następujących metod:

Aby dodać formant, należy przekazać Control, lokalizacji, do celów kontroli oraz nazwę, która jednoznacznie identyfikuje formant, aby AddControl metoda.AddControl Metoda zwraca obiekt, który określa, jak formant współdziała z arkusza kalkulacyjnego lub dokumentu.AddControl Metoda zwraca ControlSite (dla programu Excel) lub ControlSite obiektu (dla programu Word).

Poniższy przykład kodu pokazuje, jak używać AddControl(Control, Range, String) metoda do dynamicznego dodawania formantu użytkownika niestandardowego do arkusza projektu Excel poziomie dokumentu.W tym przykładzie, formant użytkownika o nazwie UserControl1i Range o nazwie range1. Aby wykorzystać ten przykład, należy uruchomić go z Sheetn klasy w projekcie.

Dim customControl As New UserControl1()

Dim dynamicControl As Microsoft.Office.Tools.Excel.ControlSite = _
    Me.Controls.AddControl(customControl, range1, "dynamic")
UserControl1 customControl = new UserControl1();

Microsoft.Office.Tools.Excel.ControlSite dynamicControl =
    this.Controls.AddControl(customControl, range1, "dynamic");

Za pomocą członków formanty niestandardowe

Po użyciu jednej z AddControl metod, aby dodać formant do arkusza lub dokument, możesz teraz mieć dwóch różnych kontroli obiektów:

  • Control , Oznaczającą formantu niestandardowego.

  • ControlSite, OLEObject, Lub OLEControl obiekt, który reprezentuje formantu, po dodaniu do arkusza kalkulacyjnego lub dokumentu.

Wiele właściwości i metody są współużytkowane przez te formanty.Jest rzeczą ważną, dostęp do tych członków za pośrednictwem właściwej kontroli:

  • Aby uzyskać dostęp do elementów członkowskich należących wyłącznie do formantu niestandardowego, należy użyć Control.

  • Dostęp do elementów członkowskich, które są współużytkowane przez formanty, należy użyć ControlSite, OLEObject, lub OLEControl obiektu.

Jeśli dostęp składnik współużytkowany z Control, może się nie udać bez ostrzeżenia lub zgłoszenia lub może produkować nieprawidłowe wyniki.Należy zawsze używać metody lub właściwości ControlSite, OLEObject, lub OLEControl obiektu, chyba, że metoda lub właściwość potrzebne nie jest dostępny; Następnie należy odwołać Control.

Na przykład, zarówno ControlSite klasy i Control klasy mają Top właściwość.Aby uzyskać lub ustawić odległość między górą formantu i górnej części dokumentu, należy użyć Top właściwość ControlSite, nie Top właściwość Control.

' Property is set in relation to the document.
dynamicControl.Top = 100

' Property is set in relation to the container control.
customControl.Top = 100
// Property is set in relation to the document.
dynamicControl.Top = 100;

// Property is set in relation to the container control.
customControl.Top = 100;

Zobacz też

Zadania

Porady: dodawanie formantów ListObject do arkuszy

Porady: dodawanie formantów NamedRange do arkuszy

Porady: dodawanie formantów wykresu do arkuszy

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

Porady: dodawanie formantów zakładek do dokumentów programu Word

Porady: dodawanie formantów formularzy Windows do dokumentów pakietu Office

Koncepcje

Przechowywanie formantów dynamicznych w dokumentach pakietu Office

Formanty formularzy Windows w dokumentach pakietu Office ― Omówienie

Inne zasoby

Formanty w dokumentach pakietu Office