Condividi tramite


Procedura: Visualizzare avvisi e finestre di dialogo tramite il modello a oggetti di InfoPath 2003

Quando si scrive codice per estendere le funzionalità di un modello di modulo che utilizza il modello a oggetti di InfoPath 2003, è in genere consigliabile ricorrere a una finestra di dialogo per visualizzare informazioni utili per gli utenti. Per visualizzare a livello di programmazione una finestra di dialogo e i relativi elementi dell'interfaccia utente in InfoPath, è necessario utilizzare i metodi dell'interfaccia UIObject.

Informazioni generali sull'interfaccia UIObject

L'interfaccia UIObject rende disponibili i seguenti metodi, che gli sviluppatori di moduli possono utilizzare per visualizzare diversi tipi di finestre di dialogo agli utenti di InfoPath che compilano un modulo.

Nome Descrizione

Alert

Visualizza una finestra di messaggio semplice contenente la stringa specificata. Questo metodo deve essere utilizzato se non è richiesto alcun input da parte dell'utente ed è sufficiente visualizzare un messaggio. Per chiudere la finestra di dialogo è necessario fare clic su OK.

Confirm

Visualizza una finestra di messaggio con pulsanti per l'input dell'utente. Il valore restituito è una delle costanti enumerate XdConfirmChoice.

SetSaveAsDialogFileName

Imposta il nome di file predefinito per un modulo nella finestra di dialogo Salva con nome.

SetSaveAsDialogLocation

Imposta il percorso iniziale di esplorazione visualizzato all'apertura della finestra di dialogo Salva con nome.

ShowMailItem

Crea un nuovo messaggio di posta elettronica nell'applicazione di posta elettronica predefinita, allegando il modulo aperto.

ShowModalDialog

Visualizza una finestra di dialogo a scelta obbligatoria basata sul file html e sugli argomenti di posizione specificati. Utilizzare questo metodo se si desidera visualizzare all'utente più di un semplice messaggio e se occorre raccogliere informazioni dall'utente (a parte la semplice conferma fornita dai pulsanti | No | Annulla visualizzati dal metodo Confirm).

ShowSignatureDialog

Visualizza la finestra di dialogo Firme digitali predefinita.

Utilizzo dell'interfaccia UIObject

All'interfaccia UIObject si accede tramite la proprietà UI dell'interfaccia XDocument, alla quale si accede tramite la variabile thisXDocument che viene inizializzata nel metodo _Startup della classe del codice del modulo. Nell'esempio seguente viene illustrato l'utilizzo dei metodi ShowMailItem e Alert dell'interfaccia UIObject.

thisXDocument.UI.ShowMailItem("someone@example.com","", "", 
   "Updated Form", "Here is the updated form that you requested.");

thisXDocument.UI.Alert("The e-mail message has been created.");
thisXDocument.UI.ShowMailItem("someone@example.com", "", "", _
   "Updated Form", "Here is the updated form that you requested.")

thisXDocument.UI.Alert("The e-mail message has been created.")

Utilizzo del metodo ShowModalDialog

In questo esempio viene illustrato l'utilizzo del metodo ShowModalDialog dell'interfaccia UIObject per visualizzare una finestra di dialogo personalizzata definita nel file HTML show.html.

public void CTRL1_5_OnClick(DocActionEvent e)
{
   // Write your code here.
   thisXDocument.UI.ShowModalDialog(
      "show.html",(object)thisXDocument,200,450,50,50);
}
Public Sub CTRL1_5_OnClick(ByVal e As DocActionEvent)
   ' Write your code here.
   thisXDocument.UI.ShowModalDialog( _
      "show.html", _
      DirectCast(thisXDocument, Object), 200, 450, 50, 50)
End Sub

Entrambi i codici di esempio in Visual C# e Visual Basic dipendono da un file HTML denominato "show.html", che definisce la finestra di dialogo richiamata dal metodo ShowModalDialog. Questo file HTML visualizza alcuni dati dal modulo e mostra una casella di testo in cui l'utente deve immettere un valore. Il valore immesso nella casella di testo viene restituito al modulo alla chiusura della finestra di dialogo.

<HTML>
   <HEAD>
      <script language="JScript">
function BtnClick()
{
   xdocument = window.dialogArguments;
   myXml = xdocument.DOM.xml
   aForm = oForm.elements;
   aForm.textBox.value = myXml;
}
      </script>
   </HEAD>
   <BODY>
      <H1><FONT face="Arial">This is a modal dialog box</FONT> &nbsp;
      </H1>
      <BUTTON onclick="BtnClick()" id="BUTTON1" type="button">
         Get XML DOM
      </BUTTON>
      <FORM ID="oForm">
         <INPUT Type="text" name="textBox">
      </FORM>
   </BODY>
</HTML>
Importante:

Per l'esecuzione e la visualizzazione in anteprima del metodo ShowModal è necessaria l'attendibilità completa. Per ulteriori informazioni, vedere Procedura: Eseguire la visualizzazione in anteprima e il debug dei modelli di modulo con codice gestito che richiedono l'attendibilità completa.

Utilizzo di un form Windows per una finestra di dialogo

Anziché utilizzare un file HTML per visualizzare il contenuto di una finestra di dialogo, come illustrato nell'esempio precedente, è possibile visualizzare un form Windows come finestra di dialogo dal modulo di InfoPath. In questo esempio viene illustrato come visualizzare un form Windows come finestra di dialogo personalizzata da un pulsante denominato ShowDialog in un modulo di InfoPath. A tale scopo, non è necessario utilizzare l'interfaccia UIObject o qualsiasi altro membro del modello a oggetti di InfoPath.

Nota:

Non è possibile creare e aggiungere un form Windows a un progetto modello di modulo di InfoPath creato utilizzando Microsoft Visual Studio Tools for Applications (VSTA). A tale scopo, è necessario utilizzare Microsoft Visual Studio Tools per Microsoft Office System 2007 e Visual Studio 2005 o Visual Studio 2008 con Visual Studio Tools per Office.

public void ShowDialog_OnClick(DocActionEvent e)
{
   // Instantiate and show Form1.
   Form1 myform = new Form1();
   myform.Show();
}
Public Sub ShowDialog_OnClick(ByVal e As DocActionEvent)
   ' Instantiate and show Form1.
   Dim MyForm As New Form1()
   MyForm.Show()
End Sub

Entrambi i codici di esempio per Visual C# e Visual Basic dipendono da un form Windows denominato "Form1", che definisce la finestra di dialogo richiamata dal gestore eventi del pulsante ShowDialog nel modulo di InfoPath. Per aggiungere Form1 al progetto di InfoPath, utilizzare la procedura seguente.

Aggiungere un form Windows a un progetto di InfoPath

  1. In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto di codice del modulo (nomeprogettoFormCode), scegliere Aggiungi e quindi Aggiungi Windows Form.

  2. Nella finestra di dialogo Aggiungi nuovo elemento assegnare un nome al modulo e quindi fare clic su Apri.

  3. Dalla Casella degli strumenti trascinare un controllo Pulsante sul modulo.

  4. Fare doppio clic sul pulsante e quindi aggiungere il codice seguente al gestore eventi del pulsante.

   // Close the form.
   this.Close();
   ' Close the form.
   Me.Close()