Freigeben über


Schreiben einer bedingten Logik, die die Laufzeitumgebung bestimmt

Die Environment-Eigenschaft der Application-Klasse ruft einen Verweis auf ein Environment-Objekt ab, mit dem bestimmt werden kann, welche Laufzeitumgebung (InfoPath, Webbrowser oder mobiler Browser) zum Öffnen des Formulars verwendet wurde.

Beispiel

Bestimmen der Laufzeitumgebung, in der ein Formular ausgeführt wird

Die Environment-Klasse stellt die Eigenschaften IsBrowser und IsMobile bereit, mit denen Sie bestimmen können, welche Bearbeitungsumgebung zum Öffnen einer Formularvorlage verwendet wurde. Wenn beide Eigenschaften false zurückgeben, wurde die Formularvorlage im Microsoft InfoPath-Editor geöffnet. Wenn eine Eigenschaft true zurückgibt, wurde die Formularvorlage aus einer entsprechend konfigurierten Dokumentbibliothek unter Microsoft SharePoint Server 2010 geöffnet, die InfoPath Forms Services im Programm für die entsprechende Eigenschaft ausführt: einen Webbrowser (IsBrowser-Eigenschaft) oder einen mobilen 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, wählen Sie in der Backstage-Ansicht auf der Registerkarte Neu die Vorlage Leere Aus. (Alternativ können Sie in der Dropdownliste Formulartyp unter der Kategorie Kompatibilität des Dialogfelds Formularoptionen die Option Webbrowserformular auswählen.) Um die MessageBox-Klasse zu unterstützen, fügen Sie einen Verweis auf System.Windows.Forms auf der hinzu. Registerkarte NET des Dialogfelds Verweis hinzufügen in Visual Studio 2012, und fügen Sie dann eine using - oder Imports-Direktive für System.Windows.Forms im Abschnitt Deklarationen des Formularcodemoduls 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 the InfoPath editor.");
}
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 the InfoPath editor.")
End If