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 la valeur false, le modèle de formulaire a été ouvert dans Microsoft Office InfoPath 2007. Si l'une des propriété renvoie la valeur true, le modèle de formulaire a été ouvert à partir de Microsoft Office Forms Server 2007 ou d'une bibliothèque de documents correctement configurée sur Microsoft Office SharePoint Server 2007 exécutant InfoPath Forms Services dans le programme de 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 suivant, activez la case à cocher Activer les fonctions compatibles avec le navigateur uniquement dans la boîte de dialogue Créer un modèle de formulaire. (Vous pouvez également activer la case à cocher Créer un modèle de formulaire qui peut être ouvert dans un navigateur ou dans InfoPath dans la section 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 (VSTA) ou Visual Studio, 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 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