Sdílet prostřednictvím


Aktualizace oblastí formulářů v projektech Outlook při migraci na rozhraní .NET Framework 4 nebo .NET Framework 4.5

Pokud ke změně cílové rozhraní projektu doplněk pro aplikaci Outlook s oblastí formuláře .NET Framework 4 nebo .NET Framework 4,5, kód vygenerovaný formulář oblasti a pro jakýkoli kód, který vytvoří instanci určité třídy oblast formuláře v době běhu, je nutné provést některé změny.

Aktualizace kódu vygenerovaný formulář oblast

Pokud je cílové rozhraní projektu změněny na .NET Framework 4 nebo .NET Framework 4,5, je nutné změnit kód regionu vygenerovaný formulář.Provedené změny jsou jiné pro oblasti formulářů, které je určena v aplikaci Visual Studio a formulář oblastí importovaných z aplikace Outlook.Další informace o rozdílech mezi těmito typy oblastí formulářů naleznete v tématu Vytváření oblastí formulářů aplikace Outlook.

Chcete-li aktualizovat generovaný kód pro oblast formuláře, která je určena v aplikaci Visual Studio

  1. Otevřete soubor s kódem oblasti formuláře v editoru kódu.Název tohoto souboru je YourFormRegion.Designer.cs nebo YourFormRegion.Designer.vb.Tento soubor v projektech v jazyce Visual Basic zobrazíte klepnutím Zobrazit všechny soubory tlačítka v Průzkumníku.

  2. Změňte deklaraci třídy oblast formuláře tak, aby je odvozen od FormRegionBase namísto Microsoft.Office.Tools.Outlook.FormRegionControl.

  3. Upravte konstruktor třídy oblast formuláře, jak je znázorněno v následujícím příkladu kódu.

    Následující příklad kódu ukazuje konstruktor třídy oblast formuláře v projektu který je cílen na rozhraní.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();
    }
    

    Následující příklad kódu ukazuje konstruktor třídy oblast formuláře v projektu který se zaměřuje .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. Upravit podpis InitializeManifest metoda, jak je ukázáno níže.Ujistěte se, neměňte kód v metodě; Tento kód označuje nastavení oblast formuláře, které jste použili v návrháři.V jazyce Visual C# projekty, musí rozšířit oblast, která se nazývá Form Region Designer generated code Chcete-li zobrazit tuto metodu.

    Následující příklad kódu ukazuje podpis InitializeManifest metoda v projektu, který je cílen na rozhraní.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.
    }
    

    Následující příklad kódu ukazuje signaturu InitializeManifest metoda v projektu, který se zaměřuje .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. Přidáte novou položku oblast formuláře aplikace Outlook do vašeho projektu.Otevřete soubor kódu na pozadí pro novou oblast formuláře, přejděte YourNewFormRegionFactory a WindowFormRegionCollection třídy v souboru a zkopírujte do schránky těchto tříd.

  6. Odstraňte nové oblast formuláře, které jste přidali do vašeho projektu.

  7. Vyhledejte v souboru kódu na pozadí v oblasti formuláře, je aktualizován pro práci v projektu přesměrovanou YourOriginalFormRegionFactory a WindowFormRegionCollection třídy a nahradit je kód, který jste zkopírovali z nové oblasti formuláře.

  8. V YourNewFormRegionFactory a WindowFormRegionCollection tříd, najít všechny odkazy na YourNewFormRegion třídou a změnit každý odkaz na YourOriginalFormRegion namísto třídy.Například pokud aktualizujete oblast formuláře s názvem SalesDataFormRegion a pojmenované oblasti nové formuláře vytvořené v kroku 5 FormRegion1, změňte všechny odkazy na FormRegion1 na SalesDataFormRegion.

Chcete-li aktualizovat generovaný kód pro oblast formuláře, které jste importovali z aplikace Outlook

  1. Otevřete soubor s kódem oblasti formuláře v editoru kódu.Název tohoto souboru je YourFormRegion.Designer.cs nebo YourFormRegion.Designer.vb.Tento soubor v projektech v jazyce Visual Basic zobrazíte klepnutím Zobrazit všechny soubory tlačítka v Průzkumníku.

  2. Změňte deklaraci třídy oblast formuláře tak, aby je odvozen od ImportedFormRegionBase namísto Microsoft.Office.Tools.Outlook.ImportedFormRegion.

  3. Upravte konstruktor třídy oblast formuláře, jak je znázorněno v následujícím příkladu kódu.

    Následující příklad kódu ukazuje konstruktor třídy oblast formuláře v projektu který je cílen na rozhraní.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);
    }
    

    Následující příklad kódu ukazuje podpis konstruktoru třídy oblast formuláře v projektu který se zaměřuje .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. Pro každý řádek kódu v InitializeControls metodu, která inicializuje ovládací prvek ve třídě oblast formuláře upravit kód, jak je ukázáno níže.

    Následující příklad kódu ukazuje způsob inicializace ovládacího prvku v projektu, který je cílen na rozhraní.NET Framework 3.5.V tomto kódu GetFormRegionControl metoda nemá parametr typu, který určuje typ ovládacího prvku, který je vrácen.

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

    Následující příklad kódu ukazuje, jak inicializovat ovládací prvek v projektu který se zaměřuje .NET Framework 4.V tomto kódu GetFormRegionControl metoda nemá parametr typu.Vrácená hodnota pro typ ovládacího prvku, který při inicializaci musíte přetypovat.

    Me.olkTextBox1 = CType(GetFormRegionControl("OlkTextBox1"), Microsoft.Office.Interop.Outlook.OlkTextBox)
    
    this.olkTextBox1 = (Microsoft.Office.Interop.Outlook.OlkTextBox)GetFormRegionControl("OlkTextBox1");
    
  5. Přidáte novou položku oblast formuláře aplikace Outlook do vašeho projektu.Otevřete soubor kódu na pozadí pro novou oblast formuláře, přejděte YourNewFormRegionFactory a WindowFormRegionCollection třídy v souboru a zkopírujte do schránky těchto tříd.

  6. Odstraňte nové oblast formuláře, které jste přidali do vašeho projektu.

  7. Vyhledejte v souboru kódu na pozadí v oblasti formuláře, je aktualizován pro práci v projektu přesměrovanou YourOriginalFormRegionFactory a WindowFormRegionCollection třídy a nahradit je kód, který jste zkopírovali z nové oblasti formuláře.

  8. V YourNewFormRegionFactory a WindowFormRegionCollection tříd, najít všechny odkazy na YourNewFormRegion třídou a změnit každý odkaz na YourOriginalFormRegion namísto třídy.Například pokud aktualizujete oblast formuláře s názvem SalesDataFormRegion a pojmenované oblasti nové formuláře vytvořené v kroku 5 FormRegion1, změňte všechny odkazy na FormRegion1 na SalesDataFormRegion.

Vytvoření instance třídy oblast formuláře

Je třeba upravit jakýkoli kód, který dynamicky vytvoří instanci určité třídy oblasti formuláře.V projektech cílených na rozhraní.NET Framework 3.5, můžete vytvořit instanci třídy oblast formuláře, jako je například Microsoft.Office.Tools.Outlook.FormRegionManifest přímo.V projektech cílených .NET Framework 4 nebo .NET Framework 4,5, jsou tyto třídy, rozhraní, které nemůže přímo vytvořit.

Pokud cílový rámec projektu je změněn na .NET Framework 4 nebo .NET Framework 4,5, musí vytvořit instanci rozhraní pomocí metod, které jsou poskytovány Globals.Factory vlastnost.Další informace o Globals.Factory vlastnost, viz Globální přístup k objektům v projektech pro systém Office.

V následující tabulce jsou uvedeny typy oblastí formuláře a metodu použít k vytvoření instancí typů v projektech cílených .NET Framework 4 nebo .NET Framework 4,5.

Type

Způsob výroby

FormRegionCustomAction

CreateFormRegionCustomAction

FormRegionInitializingEventArgs

CreateFormRegionInitializingEventArgs

FormRegionManifest

CreateFormRegionManifest

Viz také

Koncepty

Migrace řešení Office na rozhraní .NET Framework 4 nebo .NET Framework 4.5

Další zdroje

Vytváření oblastí formulářů aplikace Outlook