Vorgehensweise: Arbeiten mit Formularfenstern
Beim programmgesteuerten Arbeiten mit InfoPath-Formularen können Sie Code schreiben, um auf die Fenster des Formulars zuzugreifen, und dann einige der in den Fenstern enthaltenen Elemente anpassen. Das vom Microsoft.Office.InfoPath-Namespace bereitgestellte InfoPath-Objektmodell unterstützt den Zugriff auf Fenster eines Formulars mithilfe der Window-Klasse in Verbindung mit der WindowCollection-Klasse.
In InfoPath gibt es zwei Fenstertypen:
Das Bearbeitungsfenster, das verwendet wird, wenn ein Benutzer ein Formular ausfüllt.
Das Entwurfsfenster, das verwendet wird, wenn ein Benutzer eine Formularvorlage entwirft.
Wenn Sie Code in einer Formularvorlage schreiben, sind die Funktionen des Bearbeitungsfensters am nützlichsten, da Sie hier mithilfe eines Window-Objekts, das das aktuelle Fenster darstellt, auf eine Vielzahl von Eigenschaften und Methoden für die Anpassung der Formularbearbeitung zugreifen können.
Übersicht über die "WindowsCollection"-Klasse
Die WindowsCollection-Klasse stellt die folgenden Eigenschaften bereit, mit deren Hilfe Formularvorlagenentwickler die enthaltenen Window-Objekte verwalten können.
Name | Beschreibung |
---|---|
Count-Eigenschaft |
Ruft die Anzahl der Window-Objekte ab, die in der Auflistung enthalten sind. |
Item-Eigenschaft |
Ruft einen Verweis auf das angegebene Window-Objekt ab. |
Übersicht über die "Window"-Klasse
Die Window-Klasse stellt die folgenden Methoden und Eigenschaften bereit, die Formularentwickler für die Interaktion mit einem InfoPath-Fenster verwenden können. Die Unterstützung dieser Methoden und Eigenschaften ist abhängig vom jeweiligen Fenstertyp (WindowType), mit dem Sie arbeiten. Einige Methoden und Eigenschaften funktionieren nur mit dem Bearbeitungsfenstertyp (WindowType.Editor). Die verbleibenden Methoden und Eigenschaften funktionieren sowohl mit dem Bearbeitungsfenstertyp als auch dem Entwurfsfenstertyp (WindowType.Designer). Wie bei allen InfoPath-Objektmodellelementen kann die Unterstützung von Methoden und Eigenschaften beim Aufrufen aus einer Formularvorlage zudem von der Sicherheitsebene sowie der Bereitstellung des Formulars abhängen.
Name | Beschreibung | Unterstützung des Fenstertyps |
---|---|---|
Activate-Methode |
Aktiviert das Fenster (erteilt ihm den Fokus). |
Sowohl Typ Designer als auch Editor |
Active-Eigenschaft |
Ruft einen Wert vom Typ Boolean ab, der angibt, ob es sich bei dem Fenster um das zurzeit aktive Fenster handelt. |
Sowohl Typ Designer als auch Editor |
Caption-Eigenschaft |
Ruft den Titeltext für das durch das Window-Objekt dargestellte Fenster ab oder legt ihn fest. |
Nur Typ Editor |
Close-Methode |
Schließt das Fenster mit der Aufforderung, Änderungen an ungespeicherten Formularen oder Formularen mit nicht gespeicherten Änderungen zu speichern. |
Nur Typ Editor |
Close-Methode |
Schließt das Fenster und erzwingt optional das Schließen eines ungespeicherten Formulars oder eines Formulars mit ungespeicherten Änderungen ohne Speichern. |
Nur Typ Editor |
CommandBars-Eigenschaft |
Ruft einen Verweis auf die Microsoft Office CommandBars-Auflistung ab, die dem Fenster zugeordnet ist. |
Sowohl Typ Designer als auch Editor |
Height-Eigenschaft |
Ruft die Höhe des Fensters gemessen in Punkten ab oder legt sie fest. |
Sowohl Typ Designer als auch Editor |
Left-Eigenschaft |
Ruft die horizontale Position des Fensters gemessen in Punkten ab oder legt sie fest. |
Sowohl Typ Designer als auch Editor |
MailEnvelope-Eigenschaft |
Ruft einen Verweis auf die MailEnvelope-Klasse ab. |
Nur Typ Editor |
TaskPanes-Eigenschaft |
Ruft einen Verweis auf die TaskPaneCollection-Auflistung ab. |
Sowohl Typ Designer als auch Editor |
Top-Eigenschaft |
Ruft die vertikale Position des Fensters gemessen in Punkten ab oder legt sie fest. |
Sowohl Typ Designer als auch Editor |
Width-Eigenschaft |
Ruft die Breite des Fensters gemessen in Punkten ab oder legt sie fest. |
Sowohl Typ Designer als auch Editor |
WindowState-Eigenschaft |
Ruft den Status des Fensters als WindowState-Wert ab oder legt ihn fest. |
Sowohl Typ Designer als auch Editor |
WindowType-Eigenschaft |
Ruft den Fenstertyp als WindowType-Enumerationswert ab. |
Sowohl Typ Designer als auch Editor |
XmlForm-Eigenschaft |
Gibt einen Verweis auf das XmlForm-Objekt zurück, das dem Fenster zugeordnet ist. |
Nur Typ Editor |
Verwenden der Klassen "WindowsCollection" und "Window"
Der Zugriff auf die WindowsCollection-Klasse ist über die Windows-Eigenschaft der Application-Klasse möglich. Wenn Sie über die WindowsCollection-Klasse auf die Fenster eines Formulars zugreifen, verwenden Sie dazu einen Index (für Visual C#) oder übergeben eine Zahl vom Typ "long integer" an die Item-Eigenschaft (für Visual Basic), um einen Verweis an eine Instanz des Window-Objekts zurückzugeben. Der folgende Code legt beispielsweise einen Verweis auf das erste Window-Objekt fest, das in WindowsCollection für die aktuelle InfoPath-Sitzung enthalten ist.
Window myWindow = this.Application.Windows[0];
Dim myWindow As Window = Me.Application.Windows(0)
Sie können mithilfe der ActiveWindow-Eigenschaft der Application-Klasse direkt auf das zurzeit geöffnete Fenster zugreifen, ohne über die WindowsCollection-Auflistung gehen zu müssen, wie in der folgenden Codezeile gezeigt wird.
Window myWindow = this.Application.ActiveWindow;
Dim myWindow As Window = Me.Application.ActiveWindow
Auf ein Window-Objekt kann auch mithilfe der Window-Eigenschaft der View-Klasse zugegriffen werden, die die aktuelle Ansicht darstellt, die für das dem Formular zugrunde liegende XML-Dokument verwendet wird. Die CurrentView-Eigenschaft der XmlForm-Klasse wird verwendet, um auf das View-Objekt zuzugreifen, das die aktuelle Ansicht darstellt. Der folgende Code legt z. B. einen Verweis auf das Window-Objekt fest, das der aktuellen Ansicht zugeordnet ist.
Window myWindow = this.CurrentView.Window;
Dim myWindow As Window = Me.CurrentView.Window
Hinweis
Einige der Eigenschaften und Methoden der Window-Klasse werden nur für Bearbeitungsfenster verwendet; wenn sie für Entwurfsfenster verwendet werden, geben sie einen Fehler zurück. Die für jeden Fenstertyp unterstützten Eigenschaften und Methoden werden in der Tabelle weiter oben in diesem Thema aufgelistet. Mithilfe der WindowType-Eigenschaft im Code können Sie den Fenstertyp bestimmen, mit dem Sie arbeiten.