Vorgehensweise: Schreiben von bedingter Logik zur Bestimmung der Laufzeitumgebung
Die Environment-Eigenschaft der Application-Klasse ruft einen Verweis auf ein Environment-Objekt ab, das zum Bestimmen der Laufzeitumgebung (InfoPath, Webbrowser oder mobiler Browser) verwendet werden kann, die zum Öffnen des Formulars verwendet wurde.
Beispiel
Bestimmen der Laufzeitumgebung, in der ein Formular ausgeführt wird
Die Environment-Klasse bietet die Eigenschaften IsBrowser und IsMobile, mit denen Sie bestimmen können, welche Bearbeitungsumgebung zum Öffnen einer Formularvorlage verwendet wurde. Wenn beide Eigenschaften false zurückgeben, wurde die Formularvorlage in Microsoft Office InfoPath 2007 geöffnet. Wenn eine der Eigenschaften true zurückgibt, wurde die Formularvorlage aus Microsoft Office Forms Server 2007 oder aus einer passend konfigurierten Dokumentbibliothek auf Microsoft Office SharePoint Server 2007 mit InfoPath Forms Services im Programm für die entsprechende Eigenschaft geöffnet: Webbrowser (IsBrowser-Eigenschaft) oder mobiler Browser (IsMobile-Eigenschaft).
Im folgenden Beispiel wird beim Öffnen des Formulars in einem Browser oder mobilen Browser für den Wert von field1 (der an ein Steuerelement vom Typ Textfeld gebunden ist) eine Zeichenfolge festgelegt, um anzugeben, in welcher Laufzeitumgebung das Formular geöffnet wurde. Wenn das Formular in InfoPath geöffnet wird, wird die System.Windows.Forms.MessageBox.Show-Methode (die beim Öffnen eines Formulars in einem Browser nicht verfügbar ist) zum Anzeigen eines Mitteilungsfelds verwendet.
Wichtig: |
---|
Wenn Sie die Formularvorlage für das folgende Codebeispiel erstellen, aktivieren Sie im Dialogfeld Eine Formularvorlage entwerfen das Kontrollkästchen Nur browserkompatible Features aktivieren. (Alternativ können Sie im Dialogfeld Formularoptionen in der Kategorie Kompatibilität das Kontrollkästchen Formularvorlage entwerfen, die in einem Browser oder in InfoPath geöffnet werden kann aktivieren.) Fügen Sie in Microsoft Visual Studio Tools für Anwendungen (VSTA) oder Visual Studio im Dialogfeld Verweis hinzufügen auf der Registerkarte .NETSystem.Windows.Forms einen Verweis hinzu, um die MessageBox-Klasse zu unterstützen. Fügen Sie dann im Deklarationenabschnitt des Formularcodemoduls eine Direktive vom Typ using oder Imports für System.Windows.Forms hinzu. |
if(this.Application.Environment.IsBrowser)
{
CreateNavigator().SelectSingleNode(
"/my:myFields/my:field1", NamespaceManager).
SetValue("Running in a browser.");
}
else if (this.Application.Environment.IsMobile)
{
CreateNavigator().SelectSingleNode(
"/my:myFields/my:field1", NamespaceManager).
SetValue("Running in a mobile browser.");
}
else
{
MessageBox.Show("This form is running in InfoPath.");
}
If (Me.Application.Environment.IsBrowser) Then
CreateNavigator().SelectSingleNode(_
"/my:myFields/my:field1", NamespaceManager). _
SetValue("Running in a browser.")
ElseIf (Me.Application.Environment.IsMobile) Then
CreateNavigator().SelectSingleNode( _
"/my:myFields/my:field1", NamespaceManager). _
SetValue("Running in a mobile browser.")
Else
MessageBox.Show("This form is running in InfoPath.")
End If