Partager via


Mise à jour de zones de formulaire dans les projets Outlook qui font l'objet d'une migration vers .NET Framework 4

Si la version cible du .NET Framework d'un projet de complément Outlook contenant une zone de formulaire est modifiée en .NET Framework 4, vous devez apporter des modifications au code généré de la zone de formulaire et à tout code instanciant certaines classes de zone de formulaire au moment de l'exécution.

Mise à jour du code généré de zone de formulaire

Si la version cible du .NET Framework du projet est modifiée en .NET Framework 4, vous devez modifier le code généré de zone de formulaire. Les modifications que vous apportez sont différentes pour les zones de formulaire conçues dans Visual Studio et celles importées à partir d'Outlook. Pour plus d'informations sur les différences entre ces types de zones de formulaire, consultez Création de zones de formulaire Outlook.

Pour mettre à jour le code généré pour une zone de formulaire conçue dans Visual Studio

  1. Ouvrez le fichier code-behind de zone de formulaire dans l'éditeur de code. Ce fichier est nommé YourFormRegion.Designer.cs ou YourFormRegion.Designer.vb. Pour afficher le fichier code-behind dans les projets Visual Basic, cliquez sur le bouton Afficher tous les fichiers de l'Explorateur de solutions.

  2. Modifiez la déclaration de la classe de la zone de formulaire afin qu'elle dérive de FormRegionBase au lieu de Microsoft.Office.Tools.Outlook.FormRegionControl.

  3. Modifiez le constructeur de la classe de zone de formulaire comme indiqué dans les exemples de code suivants.

    L'exemple de code suivant montre le constructeur par défaut d'une classe de zone de formulaire dans un projet qui cible le .NET Framework 3.5.

    Public Sub New(ByVal formRegion As Microsoft.Office.Interop.Outlook.FormRegion)
        MyBase.New(formRegion)
        Me.InitializeComponent()
    End Sub
    
    public FormRegion1(Microsoft.Office.Interop.Outlook.FormRegion formRegion)
        : base(formRegion)
    {
        this.InitializeComponent();
    }
    

    L'exemple de code suivant montre le constructeur par défaut d'une classe de zone de formulaire dans un projet qui cible le .NET Framework 4.

    Public Sub New(ByVal formRegion As Microsoft.Office.Interop.Outlook.FormRegion)
        MyBase.New(Globals.Factory, formRegion)
        Me.InitializeComponent()
    End Sub
    
    public FormRegion1(Microsoft.Office.Interop.Outlook.FormRegion formRegion)
        : base(Globals.Factory, formRegion)
    {
        this.InitializeComponent();
    }
    
  4. Modifiez la signature de la méthode InitializeManifest comme indiqué ci-dessous. Assurez-vous de ne pas modifier le code de la méthode ; ce code représente les paramètres de zone de formulaire que vous avez appliqués dans le concepteur. Dans les projets Visual C#, vous devez développer la zone nommée Form Region Designer generated code pour consulter la méthode.

    L'exemple de code suivant affiche la signature de la méthode InitializeManifest dans un projet qui cible le .NET Framework 3.5.

    Private Shared Sub InitializeManifest(ByVal manifest As Microsoft.Office.Tools.Outlook.FormRegionManifest)
    
        ' Do not change code in this method.
    End Sub
    
    private static void InitializeManifest(Microsoft.Office.Tools.Outlook.FormRegionManifest manifest)
    {
        // Do not change code in this method.
    }
    

    L'exemple de code suivant affiche la signature de la méthode InitializeManifest dans un projet qui cible le .NET Framework 4.

    Private Shared Sub InitializeManifest(ByVal manifest As Microsoft.Office.Tools.Outlook.FormRegionManifest, 
        ByVal factory As Microsoft.Office.Tools.Outlook.Factory)
    
        ' Do not change code in this method.
    End Sub
    
    private static void InitializeManifest(Microsoft.Office.Tools.Outlook.FormRegionManifest manifest, 
        Microsoft.Office.Tools.Outlook.Factory factory)
    {
        // Do not change code in this method.
    }
    
  5. Ajoutez un nouvel élément de zone de formulaire Outlook à votre projet. Ouvrez le fichier code-behind pour la nouvelle zone de formulaire, localisez les classes YourNewFormRegion Factory et WindowFormRegionCollection dans le fichier et copiez ces classes vers le Presse-papiers.

  6. Supprimez la nouvelle zone de formulaire que vous avez ajoutée à votre projet.

  7. Dans le fichier code-behind de la zone de formulaire que vous mettez à jour pour l'utiliser dans le projet reciblé, localisez les classes YourOriginalFormRegion Factory et WindowFormRegionCollection, et remplacez-les par le code que vous avez copié depuis la nouvelle zone de formulaire.

  8. Dans les classes YourNewFormRegion Factory et WindowFormRegionCollection, recherchez toutes les références à la classe YourNewFormRegion et remplacez-les par les références à la classe YourOriginalFormRegion. Par exemple, si la zone de formulaire que vous mettez à jour se nomme SalesDataFormRegion et que la nouvelle zone de formulaire que vous avez créée à l'étape 5 se nomme FormRegion1, remplacez toutes les références de FormRegion1 par SalesDataFormRegion.

Pour mettre à jour le code généré d'une zone de formulaire importée à partir d'Outlook

  1. Ouvrez le fichier code-behind de zone de formulaire dans l'éditeur de code. Ce fichier est nommé YourFormRegion.Designer.cs ou YourFormRegion.Designer.vb. Pour afficher le fichier code-behind dans les projets Visual Basic, cliquez sur le bouton Afficher tous les fichiers de l'Explorateur de solutions.

  2. Modifiez la déclaration de la classe de la zone de formulaire afin qu'elle dérive de ImportedFormRegionBase au lieu de Microsoft.Office.Tools.Outlook.ImportedFormRegion.

  3. Modifiez le constructeur de la classe de zone de formulaire comme indiqué dans les exemples de code suivants.

    L'exemple de code suivant montre le constructeur par défaut d'une classe de zone de formulaire dans un projet qui cible le .NET Framework 3.5.

    Public Sub New(ByVal formRegion As Microsoft.Office.Interop.Outlook.FormRegion)
        MyBase.New(formRegion)
    End Sub
    
    public ImportedFormRegion1(Microsoft.Office.Interop.Outlook.FormRegion formRegion)
        : base(formRegion)
    {
        this.FormRegionShowing += new System.EventHandler(this.TaskFormRegion_FormRegionShowing);
        this.FormRegionClosed += new System.EventHandler(this.TaskFormRegion_FormRegionClosed);
    }
    

    L'exemple de code suivant montre la signature du constructeur d'une classe de zone de formulaire dans un projet qui cible le .NET Framework 4.

    Public Sub New(ByVal formRegion As Microsoft.Office.Interop.Outlook.FormRegion)
        MyBase.New(Globals.Factory, formRegion)
    End Sub
    
    public ImportedFormRegion1(Microsoft.Office.Interop.Outlook.FormRegion formRegion)
        : base(Globals.Factory, formRegion)
    {
        this.FormRegionShowing += new System.EventHandler(this.TaskFormRegion_FormRegionShowing);
        this.FormRegionClosed += new System.EventHandler(this.TaskFormRegion_FormRegionClosed);
    }
    
  4. Pour chaque ligne de code de la méthode InitializeControls qui initialise un contrôle dans la classe de zone de formulaire, modifiez le code comme indiqué ci-dessous.

    L'exemple de code suivant indique comment initialiser un contrôle dans un projet qui cible le .NET Framework 3.5. Dans ce code, la méthode GetFormRegionControl possède un paramètre de type qui spécifie le type du contrôle retourné.

    Me.olkTextBox1 = Me.GetFormRegionControl(Of Microsoft.Office.Interop.Outlook.OlkTextBox)("OlkTextBox1")
    
    this.olkTextBox1 = this.GetFormRegionControl<Microsoft.Office.Interop.Outlook.OlkTextBox>("OlkTextBox1");
    

    L'exemple de code suivant indique comment initialiser un contrôle dans un projet qui cible le .NET Framework 4. Dans ce code, la méthode GetFormRegionControl n'a pas de paramètre de type. Vous devez caster la valeur de retour en type du contrôle que vous initialisez.

    Me.olkTextBox1 = CType(GetFormRegionControl("OlkTextBox1"), Microsoft.Office.Interop.Outlook.OlkTextBox)
    
    this.olkTextBox1 = (Microsoft.Office.Interop.Outlook.OlkTextBox)GetFormRegionControl("OlkTextBox1");
    
  5. Ajoutez un nouvel élément de zone de formulaire Outlook à votre projet. Ouvrez le fichier code-behind pour la nouvelle zone de formulaire, localisez les classes YourNewFormRegion Factory et WindowFormRegionCollection dans le fichier et copiez ces classes vers le Presse-papiers.

  6. Supprimez la nouvelle zone de formulaire que vous avez ajoutée à votre projet.

  7. Dans le fichier code-behind de la zone de formulaire que vous mettez à jour pour l'utiliser dans le projet reciblé, localisez les classes YourOriginalFormRegion Factory et WindowFormRegionCollection, et remplacez-les par le code que vous avez copié depuis la nouvelle zone de formulaire.

  8. Dans les classes YourNewFormRegion Factory et WindowFormRegionCollection, recherchez toutes les références à la classe YourNewFormRegion et remplacez-les par les références à la classe YourOriginalFormRegion. Par exemple, si la zone de formulaire que vous mettez à jour se nomme SalesDataFormRegion et que la nouvelle zone de formulaire que vous avez créée à l'étape 5 se nomme FormRegion1, remplacez toutes les références de FormRegion1 par SalesDataFormRegion.

Instanciation de classes de zone de formulaire

Vous devez modifier tout code qui instancie dynamiquement certaines classes de zone de formulaire. Dans les projets qui ciblent le .NET Framework 3.5, vous pouvez instancier directement des classes de zone de formulaire telles que Microsoft.Office.Tools.Outlook.FormRegionManifest. Dans les projets qui ciblent le .NET Framework 4, ces classes sont des interfaces que vous ne pouvez pas instancier directement.

Si la version cible du .NET Framework de votre projet est modifiée en .NET Framework 4, vous devez instancier les interfaces à l'aide des méthodes fournies par la propriété Globals.Factory. Pour plus d'informations sur la propriété Globals.Factory, consultez Accès global aux objets dans les projets Office.

Le tableau suivant répertorie les types de zone de formulaire et la méthode à utiliser pour instancier les types dans les projets ciblant le .NET Framework 4.

Type

Méthode de fabrique à utiliser

FormRegionCustomAction

CreateFormRegionCustomAction()

FormRegionInitializingEventArgs

CreateFormRegionInitializingEventArgs

FormRegionManifest

CreateFormRegionManifest

Voir aussi

Concepts

Migration de solutions Office vers .NET Framework 4

Autres ressources

Création de zones de formulaire Outlook