Vorgehensweise: Arbeiten mit Formularfenstern mithilfe des InfoPath 2003-Objektmodells

Sie können bei der Programmierarbeit mit einem InfoPath-Formular Code schreiben, mit dem auf die Fenster eines Formulars zugegriffen wird, und dann einige der häufig enthaltenen Elemente anpassen. Das mit InfoPath 2003 kompatible Objektmodell greift auf die Fenster eines Formulars mithilfe der WindowObject-Schnittstelle in Kombination mit der WindowsCollection-Schnittstelle zu.

In InfoPath gibt es zwei verschiedene Arten von Fenstern:

  • Das Bearbeitungsfenster, das verwendet wird, wenn ein Benutzer ein Formular ausfüllt.

  • Das Entwurfsfenster, das verwendet wird, wenn ein Benutzer eine Formularvorlage entwirft.

Beim Schreiben von Code in einer Formularvorlage bietet das Bearbeitungsfenster die nützlichste Funktionalität, da Sie hier eine WindowObject-Instanz verwenden, die darauf verweist, um auf eine Reihe von Eigenschaften und Methoden zuzugreifen, die zum Anpassen des Konzepts für die Formularbearbeitung verwendet werden kann.

Übersicht über die WindowsCollection-Schnittstelle

Die WindowsCollection-Schnittstelle bietet die folgenden Eigenschaften, die Formularvorlagenentwickler zum Verwalten der enthaltenen WindowObject-Instanzen verwenden können.

Name Beschreibung

Count-Eigenschaft

Gibt die Anzahl der Window-Objekte zurück, die in der Auflistung enthalten sind.

Item-Eigenschaft

Gibt einen Verweis auf das angegebene Window-Objekt zurück.

Hinweis:
Visual C# greift auf Auflistungen mithilfe der Indexerstellung zu, und ruft nicht die Item-Eigenschaft auf. Beispiel: thisApplication.Windows[0].Caption.

Übersicht über das Window-Objekt

Die WindowObject-Schnittstelle stellt die folgenden Methoden und Eigenschaften bereit, die Formularentwickler für die Interaktion mit einem InfoPath-Fenster verwenden können. Je nach dem Fenstertyp (XdWindowType), mit dem Sie arbeiten, gibt es unterschiedliche Unterstützungsoptionen für diese Methoden und Eigenschaften. Einige Methoden und Eigenschaften interagieren nur mit dem Bearbeitungsfenstertyp (XdWindowType.xdEditorWindow). Die restlichen Methoden und Eigenschaften können sowohl mit dem Bearbeitungsfenstertyp als auch mit dem Entwurfsfenstertyp (XdWindowType.xdDesignerWindow) verwendet werden. Darüber hinaus kann die Unterstützung für Methoden und Eigenschaften wie bei allen InfoPath-Objektmodellmembern je nach der Sicherheitsebene und der Bereitstellungsart des Formulars variieren.

Name Beschreibung Unterstützung des Fenstertyps

Activate-Methode

Legt das Fenster als derzeit aktives Fenster fest.

Sowohl der xdDesignWindow- als auch der xdEditorWindow-Typ

Active-Eigenschaft

Gibt einen Boolean-Wert zurück, der angibt, ob das Fenster das derzeit aktive Fenster ist.

Sowohl der xdDesignWindow- als auch der xdEditorWindow-Typ

Caption-Eigenschaft

Eine Eigenschaft mit Lese-/Schreibzugriff, die den Beschriftungstext für das durch das Window-Objekt dargestellte Fenster zurückgibt oder festlegt.

Nur der xdEditorWindow-Typ

Close-Methode

Schließt ein Fenster.

Nur der xdEditorWindow-Typ

CommandBars-Eigenschaft

Gibt einen Verweis auf das CommandBars-Objekt von Microsoft Office zurück.

Sowohl der xdDesignWindow- als auch der xdEditorWindow-Typ

Height-Eigenschaft

Eine Eigenschaft mit Lese-/Schreibzugriff des Typs "Lange ganze Zahl", die die Höhe des durch das Window-Objekt dargestellten Fensters in Punkt angibt.

Sowohl der xdDesignWindow- als auch der xdEditorWindow-Typ

Left-Eigenschaft

Eine Eigenschaft mit Lese-/Schreibzugriff des Typs "Lange ganze Zahl", die die horizontale Position des durch das Window-Objekt dargestellten Fensters in Punkt angibt.

Sowohl der xdDesignWindow- als auch der xdEditorWindow-Typ

MailEnvelope-Eigenschaft

Gibt einen Verweis auf das MailEnvelopeObject-Objekt zurück.

Nur der xdEditorWindow-Typ

TaskPanes-Eigenschaft

Gibt einen Verweis auf die TaskPanesCollection-Auflistung zurück.

Sowohl der xdDesignWindow- als auch der xdEditorWindow-Typ

Top-Eigenschaft

Eine Eigenschaft mit Lese-/Schreibzugriff des Typs "Lange ganze Zahl", die die vertikale Position des durch das Window-Objekt dargestellten Fensters in Punkt angibt.

Sowohl der xdDesignWindow- als auch der xdEditorWindow-Typ

WindowType-Eigenschaft

Gibt eine Zahl zurück, die den Fenstertyp auf Grundlage der XdWindowType-Enumeration angibt.

Sowohl der xdDesignWindow- als auch der xdEditorWindow-Typ

Width-Eigenschaft

Eine Eigenschaft mit Lese-/Schreibzugriff des Typs "Lange ganze Zahl", die die Breite des durch das Window-Objekt dargestellten Fensters in Punkt angibt.

Sowohl der xdDesignWindow- als auch der xdEditorWindow-Typ

WindowState-Eigenschaft

Eine Eigenschaft mit Lese-/Schreibzugriff des Typs XdWindowState, die den Status des durch das Window-Objekt dargestellten Fensters zurückgibt oder festlegt.

Sowohl der xdDesignWindow- als auch der xdEditorWindow-Typ

XDocument-Eigenschaft

Gibt einen Verweis auf das _XDocument-Objekt zurück, das dem Formular zugeordnet ist.

Nur der xdEditorWindow-Typ

Verwenden der WindowsCollection- und Window-Schnittstellen

Der Zugriff auf die WindowsCollection-Schnittstelle erfolgt über die Windows-Eigenschaft der Application-Schnittstelle. Wenn Sie die WindowsCollection-Schnittstelle für den Zugriff auf das Fenster eines Formulars verwenden, verwenden Sie entweder eine Indexerstellung (Visual C#) oder übergeben eine lange ganze Zahl an die Item-Eigenschaft (Visual Basic), um einen Verweis auf eine WindowObject-Schnittstelleninstanz zurückzugeben. Durch den folgenden Code wird beispielsweise ein Verweis auf das erste WindowObject festgelegt, das in der WindowsCollection enthalten ist.

WindowObject objWindow = thisApplication.Windows[0];
Dim objWindow As WindowObject = thisApplication.Windows(0)

Sie können jedoch auch direkt auf das derzeit geöffnete Fenster zugreifen, indem Sie die ActiveWindow-Eigenschaft der Application-Schnittstelle verwenden, ohne die WindowsCollection zu durchlaufen, wie im folgenden Code dargestellt.

WindowObject objWindow = thisApplication.ActiveWindow;
Dim objWindow As WindowObject = thisApplication.ActiveWindow
Hinweis:

Beim Debuggen eines InfoPath-Projekts mit verwaltetem Code gibt die ActiveWindow-Eigenschaft immer null zurück, da das Debugfenster aktiv ist.

Der Zugriff auf ein WindowObject kann auch mithilfe der Window-Eigenschaft der View-Schnittstelle erfolgen, die dem zugrunde liegenden XML-Dokument des Formulars zugeordnet ist. Die View-Eigenschaft der XDocument-Schnittstelle wird zum Zugreifen auf das View-Objekt verwendet. Durch den folgenden Code wird beispielsweise ein Verweis auf das WindowObject festgelegt, das der Ansicht des zugrunde liegenden XML-Dokuments eines Formulars zugeordnet ist.

WindowObject objWindow = thisXDocument.View.Window;
Dim objWindow As WindowObject = thisXDocument.View.Window
Hinweis:

Einige Eigenschaften und Methoden des Window-Objekts sind nur für den Bearbeitungsfenstertyp verfügbar. Wenn Sie mit dem Entwurfsfenstertyp verwendet werden, wird ein Fehler zurückgegeben. Die für jeden Fenstertyp unterstützten Eigenschaften und Methoden sind in der in diesem Thema bereits dargestellten Tabelle aufgelistet. Sie können die WindowType-Eigenschaft im Code verwenden, um zu bestimmen, mit welchem Fenstertyp Sie arbeiten.