Partager via


Procédure pas à pas : Création et débogage d'un modèle de formulaire basique à l'aide du modèle objet InfoPath 2003

Cette rubrique présente une procédure pas à pas de création d'un modèle de formulaire avec code managé InfoPath basique qui fonctionne avec le modèle objet compatible InfoPath 2003 fourni par l'espace de noms Microsoft.Office.Interop.InfoPath.SemiTrust.

Hello World

Dans l'exemple qui suit, vous allez apprendre à afficher une boîte de dialogue d'alerte simple à l'aide de la méthode Alert du modèle objet compatible InfoPath 2003.

Création d'un nouveau modèle de formulaire InfoPath qui fonctionne avec le modèle objet compatible InfoPath 2003

  1. Créez un nouveau modèle de formulaire qui fonctionne avec le modèle objet compatible InfoPath 2003, comme décrit dans la rubrique Procédure de création d'un modèle de formulaire avec code managé à l'aide du modèle objet InfoPath 2003.

  2. Appelez le projet de modèle de formulaire HelloWorld et enregistrez-le.

    Le système de projet crée les fichiers de code et de projet, puis ouvre un modèle de formulaire vierge dans InfoPath en mode Création. Vous pouvez alors ajouter des gestionnaires d'événements.

Ajout d'un bouton avec un gestionnaire d'événements OnClick

  1. Dans la section Contrôles de l'onglet Accueil, cliquez sur le contrôle Bouton pour l'insérer dans la vue.

  2. Cliquez avec le bouton droit sur le contrôle, puis cliquez sur Propriétés du bouton.

  3. Modifiez l'Étiquette en Alerte.

  4. Modifiez l'ID en IDAlerte.

  5. Cliquez sur Modifier le code du formulaire.

    Un squelette de gestionnaire d'événements pour l'événement OnClick est créé et le focus bascule sur l'éditeur de code dans Microsoft Visual Studio Tools for Applications. Pour plus d'informations sur l'utilisation des gestionnaires d'événements, voir Procédure d'ajout d'un gestionnaire d'événements en utilisant le modèle objet InfoPath 2003.

    Vous pouvez maintenant ajouter du code de formulaire au gestionnaire d'événements du bouton.

Ajout de code de formulaire au gestionnaire d'événements

  1. Dans le gestionnaire d'événements OnClick, tapez le code suivant :

    thisXDocument.UI.Alert("Hello World!");
    
    thisXDocument.UI.Alert("Hello World!")
    

    Notez qu'une liste déroulante Microsoft IntelliSense s'affiche chaque fois que vous entrez un point dans la ligne de code. Le gestionnaire d'événements entier devrait ressembler à ce qui suit :

    [InfoPathEventHandler(MatchPath="AlertID", EventType=InfoPathEventType.OnClick)]
    public void AlertID_OnClick(DocActionEvent e)
    {
        thisXDocument.UI.Alert("Hello World!");
    }
    
    <InfoPathEventHandler(MatchPath:="AlertID", EventType:=InfoPathEventType.OnClick)>
    Public Sub AlertID_OnClick(ByVal e As DocActionEvent)
        thisXDocument.UI.Alert("Hello World!")
    End Sub
    

    Notes

    Au lieu d'employer la méthode Alert, vous pouvez utiliser la méthode MessageBox.Show de l'espace de noms System.Windows.Forms pour afficher un message. Pour ce faire, il convient d'ajouter une référence à l'assembly System.Windows.Forms, d'ajouter using System.Windows.Forms; ou Imports System.Windows.Forms aux directives au début de votre fichier de code, puis d'entrer une ligne de code comme celle-ci : MessageBox.Show("Hello World!); or MessageBox.Show("Hello World!)

  2. Basculez dans la fenêtre du mode Création d'InfoPath, puis cliquez sur le bouton Aperçu sous l'onglet Accueil.

  3. Dans la fenêtre Aperçu, cliquez sur le bouton Alerte.

    Un message s'affiche avec le texte « Hello World! ».

    La procédure suivante illustre l'ajout de points d'arrêt pour le débogage dans le code de votre formulaire.

Débogage de code de formulaire

  1. Dans l'Éditeur de code, cliquez sur la barre grise à droite de la ligne :

    thisXDocument.UI.Alert("Hello World!");
    
    thisXDocument.UI.Alert("Hello World!")
    

    Un cercle rouge s'affiche et la ligne de code est mise en surbrillance pour indiquer que l'exécution s'interrompra sur ce point d'arrêt.

  2. Dans le menu Débogage, cliquez sur Démarrer le débogage ou appuyez sur F5.

  3. Dans la fenêtre Aperçu d'InfoPath, cliquez sur le bouton Alerte.

    Le focus bascule sur l'Éditeur de code et la ligne où se trouve le point d'arrêt est mise en surbrillance.

  4. Dans le menu Débogage, cliquez sur Pas à pas principal (ou appuyez sur Maj+F8 pour continuer pas à pas dans le code).

    Le code de la méthode Alert s'exécute et l'alerte « Hello World! » s'affiche dans la fenêtre Aperçu d'InfoPath.

Récupération du nom d'utilisateur actuel

Avec les classes .NET Framework, vous pouvez accéder aux fonctionnalités qui n'étaient pas facilement disponibles depuis un script. Dans cet exemple, vous allez apprendre comment utiliser les classes .NET Framework pour récupérer le nom de l'utilisateur actuel.

Ajout d'un gestionnaire d'événements OnLoad

  1. Ouvrez le projet HelloWorld InfoPath que vous avez créé précédemment.

  2. Sous l'onglet Affichage, cliquez sur Afficher les champs.

  3. Cliquez avec le bouton droit sur le nœud mesChamps, puis cliquez sur Ajouter.

  4. Dans Nom, tapez employé, puis cliquez sur OK.

  5. Faites glisser le nœud employé dans la vue.

  6. Sous l'onglet Développeur, cliquez sur Événement Sur chargement (OnLoad).

    Ce faisant, vous créez un gestionnaire d'événements pour l'événement OnLoad, et le focus bascule sur l'Éditeur de code. Le code de ce gestionnaire d'événements sera appelé à chaque chargement du formulaire. La procédure suivante illustre l'ajout d'un code de formulaire qui récupère le nom de l'utilisateur et le place dans le gestionnaire d'événements.

Ajout de code de formulaire

  1. Dans le gestionnaire d'événements OnLoad, tapez le code suivant :

    // Store an XML DOM node as a local variable.
    IXMLDOMNode nodeEmployee = thisXDocument.DOM.selectSingleNode("my:myFields/my:employee");
    if(nodeEmployee != null)
    {
        if(nodeEmployee.text == "")
        {
        // If the employee name is blank when the form is loaded, 
        // populate the employee node with the current user name.
        nodeEmployee.text = System.Environment.UserName;
        }
    }
    
    // Store an XML DOM node as a local variable.
    Dim nodeEmployee As IXMLDOMNode
    nodeEmployee = thisXDocument.DOM.selectSingleNode("my:myFields/my:employee");
    If Not(nodeEmployee Is Nothing) Then
        If(nodeEmployee.text = "") Then
        // If the employee name is blank when the form is loaded, 
        // populate the employee node with the current user name.
        nodeEmployee.text = System.Environment.UserName
        End If
    End If
    
  2. Compilez et affichez un aperçu du formulaire.

    La zone de texte employé doit maintenant contenir votre nom d'utilisateur.

Pour plus d'informations sur le déploiement d'un modèle de formulaire avec code managé, voir Procédure : déployer des modèles de formulaire InfoPath avec code. Pour plus d'informations sur le modèle objet InfoPath et les tâches de programmation courantes qui fonctionnent avec le modèle objet compatible InfoPath 2003, voir Présentation du modèle objet InfoPath 2003.

Voir aussi

Tâches

Procédure d'ajout d'un gestionnaire d'événements en utilisant le modèle objet InfoPath 2003

Concepts

Code d'initialisation et de nettoyage à l'aide du modèle objet InfoPath 2003

Modèles objet compatibles avec InfoPath 2003