Partager via


Procédure d'affichage des alertes et des boîtes de dialogue en utilisant le modèle objet InfoPath 2003

Lorsque vous écrivez du code pour développer les fonctionnalités d'un modèle de formulaire utilisant le modèle objet InfoPath 2003, il est souvent utile de communiquer des informations aux utilisateurs par l'intermédiaire de boîtes de dialogue. L'affichage par programme d'une boîte de dialogue et des éléments de l'interface utilisateur dans InfoPath se fait au moyen des méthodes de l'interface UIObject.

Vue d'ensemble de l'interface UIObject

L'interface UIObject fournit aux développeurs de formulaires les méthodes suivantes pour l'affichage de plusieurs types de boîtes de dialogue destinées aux utilisateurs InfoPath qui remplissent un formulaire.

Nom Description

Alert

Affiche une boîte de message unique contenant une chaîne de message spécifiée. Cette méthode est recommandée lorsqu'aucune action de la part de l'utilisateur n'est requise et qu'un simple message doit être affiché. Cette boîte de dialogue se ferme lorsque l'utilisateur clique sur le bouton OK.

Confirm

Affiche une boîte de message contenant des boutons qui permettent aux utilisateurs d'effectuer des entrées. La valeur retournée correspond à l'une des constantes XdConfirmChoice énumérées.

SetSaveAsDialogFileName

Définit le nom de fichier par défaut d'un formulaire dans la boîte de dialogue Enregistrer sous.

SetSaveAsDialogLocation

Définit l'emplacement de recherche initial de la boîte de dialogue Enregistrer sous, lors de son ouverture.

ShowMailItem

Crée un message électronique dans l'application de messagerie par défaut avec le formulaire actif en pièce jointe.

ShowModalDialog

Affiche une boîte de dialogue qui exige une réponse de l'utilisateur, sur la base du fichier HTML et des arguments de position spécifiés. Cette méthode doit être utilisée si vous souhaitez afficher plus qu'un simple message et que vous devez récupérer des données auprès de l'utilisateur (au-delà de la simple confirmation offerte par les boutons Oui | Non | Annuler affichés par la méthode Confirm).

ShowSignatureDialog

Affiche la boîte de dialogue intégrée Signatures numériques.

Utilisation de l'interface UIObject

L'interface UIObject est accessible via la propriété UI de l'interface XDocument, elle-même accessible via la variable thisXDocument initialisée dans la méthode _Startup de la classe du code du formulaire. L'exemple qui suit illustre l'utilisation des méthodes ShowMailItem et Alert de l'interface 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.")

Utilisation de la méthode ShowModalDialog

Cet exemple illustre l'utilisation de la méthode ShowModalDialog de l'interface UIObject pour afficher une boîte de dialogue personnalisée définie dans le fichier 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

Les exemples Visual C# et Visual Basic s'appuient sur un fichier HTML appelé « show.html » qui définit la boîte de dialogue appelée par la méthode ShowModalDialog. Ce fichier HTML affiche certaines données du formulaire et affiche une zone de texte dans laquelle l'utilisateur peut entrer une valeur. La valeur de cette zone de texte est retournée au formulaire lors de la fermeture de la boîte de dialogue.

<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>
Important :

La méthode ShowModal nécessite une autorisation totale pour pouvoir s'exécuter ou afficher un aperçu. Pour plus d'informations, voir Procédure d'affichage d'un aperçu et de débogage des modèles de formulaires avec code managé qui nécessitent une autorisation totale.

Utilisation d'un formulaire Windows comme boîte de dialogue

Au lieu d'utiliser un fichier HTML pour afficher le contenu d'une boîte de dialogue, comme dans l'exemple précédent, vous pouvez utiliser un formulaire Windows comme boîte de dialogue. Cet exemple illustre l'utilisation d'un formulaire Windows comme boîte de dialogue personnalisée ouverte à partir d'un bouton nommé ShowDialog dans un formulaire InfoPath. Cette procédure ne requiert pas l'utilisation de l'interface UIObject ou de tout autre membre du modèle objet InfoPath.

Remarque

Vous ne pouvez pas créer et ajouter un formulaire Windows à un projet de modèle de formulaire créé à l'aide de Microsoft Visual Studio Tools for Applications (VSTA). Pour créer et ajouter un formulaire Windows à un projet de modèle de formulaire, vous devez utiliser Microsoft Visual Studio 2005 Tools pour Microsoft Office System2007 et Visual Studio 2005 ou Visual Studio 2008 avec Visual Studio Tools pour 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

Les exemples Visual C# et Visual Basic s'appuient sur un formulaire Windows « Form1 » qui définit la boîte de dialogue appelée par le gestionnaire d'événements pour le bouton ShowDialog du formulaire InfoPath. Pour ajouter Form1 à votre projet InfoPath, utilisez la procédure suivante.

Ajout d'un formulaire Windows à un projet InfoPath

  1. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le projet de code de formulaire (nomduprojetCodeFormulaire), pointez sur Ajouter, puis cliquez sur Ajouter un formulaire Windows.

  2. Dans la boîte de dialogue Ajouter un nouvel élément, donnez un nom au formulaire, puis cliquez sur Ouvrir.

  3. Depuis la Boîte à outils, faites glisser un contrôle Bouton sur le formulaire.

  4. Double-cliquez sur le bouton, puis ajoutez le code suivant au gestionnaire d'événements du bouton.

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