Partager via


Procédure pas à pas : conception d'une zone de formulaire Outlook

Mise à jour : novembre 2007

S'applique à

Les informations de cette rubrique s'appliquent uniquement aux projets Visual Studio Tools pour Office et aux versions de Microsoft Office spécifiés.

Type de projet

  • Projets au niveau de l'application

Version de Microsoft Office

  • Outlook 2007

Pour plus d'informations, consultez Fonctionnalités disponibles par type d'application et de projet.

Les zones de formulaire personnalisées étendent les formulaires Microsoft Office Outlook 2007 standard ou personnalisés. Dans cette procédure pas à pas, vous allez concevoir une zone de formulaire personnalisée qui s'affiche comme une nouvelle page dans la fenêtre Inspecteur d'un élément de contact. Cette zone de formulaire affiche une carte correspondant à chaque adresse répertoriée pour le contact, en envoyant les informations d'adresse au site Web Windows Live Local Search.

Pour plus d'informations sur les zones de formulaire, consultez Création de zones de formulaire Outlook.

Cette procédure pas à pas illustre les tâches suivantes :

  • Création d'un projet de complément Outlook.

  • Ajout d'une zone de formulaire au projet de complément.

  • Conception de la disposition de la zone de formulaire.

  • Personnalisation du comportement de la zone de formulaire.

  • Test de la zone de formulaire Outlook.

Remarque :

Il se peut que votre ordinateur affiche des noms ou des emplacements différents pour certains éléments de l'interface utilisateur Visual Studio mentionnés dans les instructions suivantes. Ces éléments sont déterminés par votre édition de Visual Studio et les paramètres que vous utilisez. Pour plus d'informations, consultez Paramètres Visual Studio.

Composants requis

Vous avez besoin des composants suivants pour exécuter cette procédure pas à pas :

  • Visual Studio Tools pour Office (composant facultatif de Visual Studio 2008 Professional et Visual Studio Team System).

  • Microsoft Office Outlook 2007.

  • Connexion à Internet pour utiliser le service Local Search.

Création d'un projet de complément Outlook

Commencez par créer un projet de complément de base.

Pour créer un projet de complément Outlook

  1. Dans Visual Studio, créez un projet de complément Outlook 2007 et nommez-le MapItAddIn.

  2. Dans la boîte de dialogue Nouveau projet, sélectionnez Créer le répertoire pour la solution.

  3. Enregistrez le projet dans le répertoire de votre choix.

    Pour plus d'informations, consultez Comment : créer des projets Visual Studio Tools pour Office.

Ajout d'une zone de formulaire au projet de complément Outlook 2007

Une solution de complément Outlook peut contenir un ou plusieurs éléments de zone de formulaire Outlook. Ajoutez un élément de zone de formulaire à votre projet à l'aide de l'Assistant Nouvelle zone de formulaire Outlook.

Pour ajouter une zone de formulaire au projet de complément Outlook

  1. Dans l'Explorateur de solutions, sélectionnez le projet MapItAddIn.

  2. Dans le menu Projet, cliquez sur Ajouter un nouvel élément.

  3. Dans la boîte de dialogue Ajouter un nouvel élément, sélectionnez Zone de formulaire Outlook, nommez le fichier MapIt, puis cliquez sur Ajouter.

    L'Assistant Nouvelle zone de formulaire Outlook démarre.

  4. Sur la page Sélectionnez la méthode de création de la zone de formulaire, cliquez sur Créer une nouvelle zone de formulaire, puis sur Suivant.

  5. Sur la page Sélectionnez le type de zone de formulaire que vous souhaitez créer, cliquez sur Séparer, puis sur Suivant.

    Une zone de formulaire distincte ajoute une nouvelle page à un formulaire Outlook. Pour plus d'informations sur les types de zones de formulaire, consultez Création de zones de formulaire Outlook.

  6. Saisissez Afficher la carte dans la zone Nom de la page Fournissez un texte descriptif et sélectionnez vos préférences d'affichage.

    Ce nom apparaît sur le ruban de la fenêtre Inspecteur lorsque l'élément de contact est ouvert.

  7. Sélectionnez Inspecteurs qui sont en mode composition et Inspecteurs qui sont en mode lecture, puis cliquez sur Suivant.

  8. Sur la page Identifiez les classes de message qui afficheront cette zone de formulaire, désélectionnez Message, sélectionnez Contact, puis cliquez sur Terminer.

    Un fichier MapIt.cs ou MapIt.vb est ajouté à votre projet.

Conception de la disposition de la zone de formulaire

Pour développer visuellement des zones de formulaire, utilisez le Concepteur de zones de formulaire. Vous pouvez faire glisser des contrôles managés vers la surface du Concepteur de zones de formulaire. Utilisez le Concepteur et la fenêtre Propriétés pour ajuster la disposition et l'apparence des contrôles.

Pour concevoir la disposition de la zone de formulaire

  1. Dans l'Explorateur de solutions, développez le projet MapItAddIn, puis double-cliquez sur MapIt.cs ou MapIt.vb pour ouvrir le Concepteur de zones de formulaire.

  2. Cliquez avec le bouton droit sur le Concepteur et sélectionnez Propriétés.

  3. Dans la fenêtre Propriétés, affectez la valeur 664, 469 à Taille.

    De cette façon, vous êtes sûr que la zone de formulaire sera suffisamment grande pour afficher une carte.

  4. Dans le menu Affichage, cliquez sur Boîte à outils.

  5. Dans l'onglet Contrôles communs de la Boîte à outils, ajoutez un WebBrowser à la zone de formulaire.

    Le WebBrowser affichera une carte correspondant à chaque adresse répertoriée pour le contact.

Personnalisation du comportement de la zone de formulaire

Ajoutez du code aux gestionnaires d'événements de zone de formulaire pour personnaliser le comportement d'une zone de formulaire au moment de l'exécution. Pour cette zone de formulaire, le code examine les propriétés d'un élément Outlook et détermine s'il doit afficher la zone de formulaire Afficher la carte. S'il affiche la zone de formulaire, le code accède à Windows Live Local Search et charge une page pour chaque adresse répertoriée dans l'élément de contact Outlook.

Pour personnaliser le comportement de la zone de formulaire

  1. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur MapIt.cs ou MapIt.vb et sélectionnez Afficher le code.

    MapIt.cs ou MapIt.vb s'ouvre dans l'éditeur de code.

  2. Développez la région de code Fabrique de zones de formulaire.

    La classe de fabrique de zones de formulaire nommée MapItFactory est exposée.

  3. Ajoutez le code suivant au gestionnaire d'événements MapItFactory_FormRegionInitializing. Ce gestionnaire d'événements est appelé lorsque l'utilisateur ouvre un élément de contact. Le code suivant détermine si l'élément de contact contient une adresse. Si l'élément de contact ne contient pas d'adresse, ce code affecte la valeur true à la propriété Cancel de la classe FormRegionInitializingEventArgs et la zone de formulaire n'est pas affichée. Sinon, le complément déclenche l'événement FormRegionShowing et affiche la zone de formulaire.

    Private Sub MapItFactory_FormRegionInitializing(ByVal sender As Object, ByVal e As Microsoft.Office.Tools.Outlook.FormRegionInitializingEventArgs) Handles Me.FormRegionInitializing
    
        Dim myItem As Outlook.ContactItem = CType(e.OutlookItem, Outlook.ContactItem)
    
        If Not (myItem Is Nothing) Then
            If Not (myItem.BusinessAddress Is Nothing) AndAlso myItem.BusinessAddress.Trim().Length > 0 Or (Not (myItem.HomeAddress Is Nothing) AndAlso myItem.HomeAddress.Trim().Length > 0) Or (Not (myItem.OtherAddress Is Nothing) AndAlso myItem.OtherAddress.Trim().Length > 0) Then
                Return
            End If
        End If
    
        e.Cancel = True
    
    End Sub
    
    private void MapItFactory_FormRegionInitializing(object sender,
        Microsoft.Office.Tools.Outlook.FormRegionInitializingEventArgs e)
    {
        Outlook.ContactItem myItem = (Outlook.ContactItem)e.OutlookItem;
    
        if (myItem != null)
        {
            if ((myItem.BusinessAddress != null &&
                    myItem.BusinessAddress.Trim().Length > 0) ||
                (myItem.HomeAddress != null && 
                    myItem.HomeAddress.Trim().Length > 0) ||
                (myItem.OtherAddress != null && 
                    myItem.OtherAddress.Trim().Length > 0))
            {
                return;
            }
        }
    
        e.Cancel = true;
    }
    
  4. Ajoutez le code suivant au gestionnaire d'événements FormRegionShowing. Ce code exécute les tâches suivantes :

    • Concatène chaque adresse de l'élément de contact et crée une chaîne d'URL.

    • Appelle la méthode Navigate de l'objet WebBrowser et passe la chaîne d'URL en tant que paramètre.

    Le site Web Local Search apparaît dans la zone de formulaire Afficher la carte et présente chaque adresse dans la mémoire brouillon.

    Private Sub MapIt_FormRegionShowing(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles MyBase.FormRegionShowing
        Dim tempLoc As String = ""
        Dim defaultAddress As String = ""
        Dim scratchPadAddress As String = ""
    
        Dim myItem As Outlook.ContactItem = _
            CType(Me.OutlookItem, Outlook.ContactItem)
    
        If Not (myItem Is Nothing) Then
            If Not (myItem.HomeAddress Is Nothing) And _
                myItem.HomeAddress.Trim().Length > 0 Then
                tempLoc = myItem.HomeAddressStreet.Trim() + " " _
                    + myItem.HomeAddressCity + " " + myItem.HomeAddressState + _
                        " " + myItem.HomeAddressPostalCode
                If myItem.HomeAddress = myItem.MailingAddress Then
                    defaultAddress = tempLoc + "_Home"
                Else
                    scratchPadAddress += "adr." + tempLoc + "_Home~"
                End If
            End If
            If Not (myItem.BusinessAddress Is Nothing) And _
                myItem.BusinessAddress.Trim().Length > 0 Then
                tempLoc = myItem.BusinessAddressStreet.Trim() + " " _
                    + myItem.BusinessAddressCity + " " + _
                        myItem.BusinessAddressState + " " + _
                            myItem.BusinessAddressPostalCode
                If myItem.BusinessAddress = myItem.MailingAddress Then
                    defaultAddress = tempLoc + "_Business"
                Else
                    scratchPadAddress += "adr." + tempLoc + "_Business~"
                End If
            End If
            If Not (myItem.OtherAddress Is Nothing) And _
                myItem.OtherAddress.Trim().Length > 0 Then
                tempLoc = myItem.OtherAddressStreet.Trim() + " " + _
                    myItem.OtherAddressCity + " " + myItem.OtherAddressState + _
                        " " + myItem.OtherAddressPostalCode
                If myItem.OtherAddress = myItem.MailingAddress Then
                    defaultAddress = tempLoc + "_Other"
                Else
                    scratchPadAddress += "adr." + tempLoc + "_Other~"
                End If
            End If
        End If
    
        WebBrowser1.Navigate(("http://local.live.com/default.aspx?style=r&where1=" _
            + defaultAddress + "&sp=" + scratchPadAddress))
    
    End Sub
    
    private void MapIt_FormRegionShowing(object sender, EventArgs e)
    {
        string tempLoc = "";
        string defaultAddress = "";
        string scratchPadAddress = "";
    
        Outlook.ContactItem myItem = (Outlook.ContactItem)this.OutlookItem;
    
        if (myItem != null)
        {
            if (myItem.HomeAddress != null && 
                    myItem.HomeAddress.Trim().Length > 0)
            {
                tempLoc = myItem.HomeAddressStreet.Trim() + " " + 
                    myItem.HomeAddressCity + " " + myItem.HomeAddressState + 
                        " " + myItem.HomeAddressPostalCode;
                if (myItem.HomeAddress == myItem.MailingAddress)
                {
                    defaultAddress = tempLoc + "_Home";
                }
                else
                {
                    scratchPadAddress += "adr." + tempLoc + "_Home~";
                }
            }
            if (myItem.BusinessAddress != null && 
                    myItem.BusinessAddress.Trim().Length > 0)
            {
                tempLoc = myItem.BusinessAddressStreet.Trim() + 
                    " " + myItem.BusinessAddressCity + " " + 
                        myItem.BusinessAddressState + " " + 
                            myItem.BusinessAddressPostalCode;
                if (myItem.BusinessAddress == myItem.MailingAddress)
                {
                    defaultAddress = tempLoc + "_Business";
                }
                else
                {
                    scratchPadAddress += "adr." + tempLoc + "_Business~";
                }
            }
            if (myItem.OtherAddress != null && myItem.OtherAddress.Trim().Length > 0)
            {
                tempLoc = myItem.OtherAddressStreet.Trim() + " " + 
                    myItem.OtherAddressCity + " " + myItem.OtherAddressState + 
                        " " + myItem.OtherAddressPostalCode;
                if (myItem.OtherAddress == myItem.MailingAddress)
                {
                    defaultAddress = tempLoc + "_Other";
                }
                else
                {
                    scratchPadAddress += "adr." + tempLoc + "_Other~";
                }
            }
        }
    
        webBrowser1.Navigate("http://local.live.com/default.aspx?style=r&where1=" 
            + defaultAddress + "&sp=" + scratchPadAddress);
    
    }
    

Test de la zone de formulaire Outlook

Lorsque vous exécutez le projet, Visual Studio Tools pour Office exécute le complément et ouvre Outlook. Ouvrez un élément de contact pour afficher la zone de formulaire Afficher la carte. La zone de formulaire Afficher la carte s'affiche comme une page dans le formulaire de tout élément de contact contenant une adresse.

Pour tester la zone de formulaire Afficher la carte

  1. Appuyez sur F5 pour exécuter le projet.

    Outlook s'ouvre.

  2. Dans le menu Fichier d'Outlook, pointez sur Nouveau, puis cliquez sur Contact.

  3. Dans le formulaire de contact, saisissez Ann Beebe comme nom de contact, puis spécifiez les trois adresses suivantes.

    Type d'adresse

    Adresse

    Bureau

    4567 Main St. Buffalo, NY

    Domicile

    1234 North St. Buffalo, NY

    Autres

    3456 Main St. Seattle, WA

  4. Enregistrez et fermez l'élément de contact.

  5. Rouvrez l'élément de contact Ann Beebe.

  6. Dans le groupe Afficher du ruban de l'élément, cliquez sur Afficher la carte pour ouvrir la zone de formulaire Afficher la carte.

    La zone de formulaire Afficher la carte apparaît et affiche le site Web Local Search. Les adresses des champs Bureau, Domicile et Autre apparaissent dans la mémoire brouillon. Sélectionnez l'adresse pour laquelle vous souhaitez afficher une carte.

Étapes suivantes

Pour plus d'informations sur la personnalisation de l'interface utilisateur d'une application Office, consultez les rubriques suivantes :

Voir aussi

Tâches

Procédure pas à pas : importation d'une zone de formulaire conçue dans Outlook

Comment : ajouter une zone de formulaire à un projet de complément Outlook

Comment : empêcher Outlook d'afficher une zone de formulaire

Comment : accéder à l'élément Outlook qui affiche la zone de formulaire

Concepts

Accès à une zone de formulaire au moment de l'exécution

Création de zones de formulaire Outlook

Directives pour la création de zones de formulaire Outlook

Association d'une zone de formulaire à une classe de message Outlook

Actions personnalisées dans les zones de formulaire Outlook