Condividi tramite


Procedura: Scrivere la logica condizionale che determina l'ambiente di run-time

La proprietà Environment della classe Application ottiene un riferimento a un oggetto Environment che può essere utilizzato per determinare l'ambiente di run-time in cui aprire il modulo, ad esempio InfoPath, un browser Web o un browser di un dispositivo mobile.

Esempio

Verifica dell'ambiente di run-time in cui è in esecuzione un modulo

La classe Environment include le proprietà IsBrowser e IsMobile che consentono di determinare l'ambiente di modifica utilizzato per aprire un modello di modulo. Se entrambe le proprietà restituiscono il valore false, il modello di modulo è stato aperto in Microsoft Office InfoPath 2007. Se una delle proprietà restituisce il valore true, il modello di modulo è stato aperto in Microsoft Office Forms Server 2007 o da una raccolta documenti configurata in modo appropriato in un sistema Microsoft Office SharePoint Server 2007 in cui è in esecuzione InfoPath Forms Services con il programma per la proprietà corrispondente, ovvero un browser Web (proprietà IsBrowser) o un browser di un dispositivo mobile (proprietà IsMobile).

Nell'esempio seguente, se il modulo viene aperto in un browser Web o in un browser di un dispositivo mobile, il valore di field1 associato a un controllo Casella di testo viene impostato su una stringa per indicare l'ambiente di run-time in cui è stato aperto il modulo. Se il modulo viene aperto in InfoPath, viene utilizzato il metodo System.Windows.Forms.MessageBox.Show (non disponibile quando un modulo è in esecuzione in un browser) per visualizzare una finestra di messaggio.

Importante:

Per creare il modello di modulo dell'esempio seguente, selezionare la casella di controllo Attiva solo caratteristiche compatibili con browser nella finestra di dialogo Progetta modello di modulo. In alternativa, è possibile selezionare la casella di controllo Progetta modello di modulo da aprire in un browser o in InfoPath nella categoria Compatibilità della finestra di dialogo Opzioni modulo. Per supportare la classe MessageBox, aggiungere un riferimento a System.Windows.Forms nella scheda .NET della finestra di dialogo Aggiungi riferimento in Microsoft Visual Studio Tools for Applications (VSTA) o in Visual Studio e quindi aggiungere una direttiva using o Imports per System.Windows.Forms nella sezione delle dichiarazioni del modulo di codice del modulo.

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