Partager via


Procédure d'écriture d'une logique conditionnelle qui détermine l'environnement à l'exécution

La propriété Environment de la classe Application obtient une référence à un objet Environment qui peut être utilisé pour déterminer l'environnement d'exécution (InfoPath, navigateur Web ou navigateur mobile) utilisé pour ouvrir le formulaire.

Exemple

Détermination de l'environnement d'exécution d'un formulaire

La classe Environment fournit les propriétés IsBrowser et IsMobile qui permettent de déterminer l'environnement d'édition utilisé pour ouvrir un modèle de formulaire. Si les deux propriétés renvoient false, le modèle de formulaire a été ouvert dans l'éditeur Microsoft InfoPath 2010. Si l'une ou l'autre des propriétés renvoie true, le modèle de formulaire a été ouvert à partir d'une bibliothèque de documents configurée de manière appropriée dans Microsoft SharePoint Server 2010 qui exécute InfoPath Forms Services dans le programme pour la propriété correspondante : un navigateur Web (propriété IsBrowser) ou un navigateur mobile (propriété IsMobile).

Dans l'exemple suivant, si le formulaire est ouvert dans un navigateur ou un navigateur mobile, la valeur de champ1 (qui est liée à un contrôle Zone de texte) est définie sur une chaîne pour indiquer l'environnement d'exécution dans lequel le formulaire a été ouvert. S'il est ouvert dans InfoPath, la méthode System.Windows.Forms.MessageBox.Show (qui n'est pas disponible lorsqu'un formulaire est exécuté dans un navigateur) est utilisée pour afficher une zone de message.

Important

Lorsque vous créez le modèle de formulaire pour l'exemple de code ci-dessous, sélectionnez le modèle Vide sous l'onglet Nouveau de la vue Backstage (vous pouvez également sélectionner Formulaire de navigateur Web dans la liste déroulante Type de formulaire dans la catégorie Compatibilité de la boîte de dialogue Options de formulaire). Pour prendre en charge la classe MessageBox, ajoutez une référence à System.Windows.Forms sous l'onglet .NET de la boîte de dialogue Ajouter une référence dans Microsoft Visual Studio Tools for Applications, puis ajoutez une directive using ou Imports pour System.Windows.Forms dans la section des déclarations du module de code du formulaire.

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