Atualização de regiões de formulário em projetos do Outlook que você migrar para o.NET Framework 4

Se a estrutura de destino de um projeto suplemento do Outlook com uma região de formulário for alterada para o .NET Framework 4, você deve fazer algumas alterações para o código de região de formulário gerado e qualquer código que instancia determinadas classes de região de formulário em tempo de execução.

Atualizando o código de região de formulário gerado

Se a estrutura de destino do projeto é alterada para o .NET Framework 4, você deve alterar o código de região de formulário gerado. As alterações feitas são diferentes das regiões de formulário que você criou em regiões de formulário e Visual Studio que você importou do Outlook. Para obter mais informações sobre as diferenças entre esses tipos de regiões de formulário, consulte Criação de regiões de formulário do Outlook.

Para atualizar o código gerado para uma região de formulário criado no Visual Studio

  1. Abra o arquivo de code-behind de região de formulário no editor de código. Este arquivo é nomeado YourFormRegion.CS ou YourFormRegion.Designer. Para ver este arquivo em projetos de Visual Basic, clique na Mostrar todos os arquivos botão no Solution Explorer.

  2. Modificar a declaração da classe de região de formulário para que ele deriva de FormRegionBase em vez de Microsoft.Office.Tools.Outlook.FormRegionControl.

  3. Modificar o construtor da classe de região de formulário, conforme mostrado nos exemplos de código a seguir.

    O exemplo de código a seguir mostra o construtor de uma classe de região de formulário em um projeto voltado para o.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();
    }
    

    O exemplo de código a seguir mostra o construtor de uma classe de região de formulário em um projeto voltado para o .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. Modificar a assinatura do InitializeManifest método, como mostrado abaixo. Certifique-se de que você não modifique o código no método; Esse código representa as configurações de região de formulário que você aplicou no designer. Em projetos do Visual C#, você deve expandir a região denominada Form Region Designer generated code para ver esse método.

    O exemplo de código a seguir mostra a assinatura da InitializeManifest o método em um projeto que tem como alvo o.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.
    }
    

    O exemplo de código a seguir mostra a assinatura InitializeManifest método em um projeto que se destina a .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. Adicione um novo item de região de formulário do Outlook ao seu projeto. Abra o arquivo code-behind para a nova região de formulário, localize o YourNewFormRegionFactory e WindowFormRegionCollection classes no arquivo e copie essas classes para a área de transferência.

  6. Exclua a nova região de formulário que você adicionou ao seu projeto.

  7. No arquivo code-behind da região de formulário que você está atualizando a trabalhar no projeto redirecionado, localize o YourOriginalFormRegionFactory e WindowFormRegionCollection de classes e substituí-los com o código que você copiou de nova região de formulário.

  8. No YourNewFormRegionFactory e WindowFormRegionCollection Pesquisar todas as referências a classes, o YourNewFormRegion de classe e alterar cada referência para o YourOriginalFormRegion classe em vez disso. Por exemplo, se a região de formulário que você está atualizando é nomeada SalesDataFormRegion e a nova região de formulário que você criou na etapa 5 é nomeada FormRegion1, altere todas as referências de FormRegion1 para SalesDataFormRegion.

Para atualizar o código gerado para uma região de formulário que você importou do Outlook

  1. Abra o arquivo de code-behind de região de formulário no editor de código. Este arquivo é nomeado YourFormRegion.CS ou YourFormRegion.Designer. Para ver este arquivo em projetos de Visual Basic, clique na Mostrar todos os arquivos botão no Solution Explorer.

  2. Modificar a declaração da classe de região de formulário para que ele deriva de ImportedFormRegionBase em vez de Microsoft.Office.Tools.Outlook.ImportedFormRegion.

  3. Modificar o construtor da classe de região de formulário, conforme mostrado nos exemplos de código a seguir.

    O exemplo de código a seguir mostra o construtor de uma classe de região de formulário em um projeto voltado para o.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);
    }
    

    O exemplo de código a seguir mostra a assinatura do construtor de uma classe de região de formulário em um projeto voltado para o .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. Para cada linha do código do InitializeControls método inicializa um controle na classe de região de formulário, modifique o código conforme mostrado abaixo.

    O exemplo de código a seguir mostra como inicializar um controle em um projeto voltado para o.NET Framework 3.5. Nesse código, o GetFormRegionControl método tem um parâmetro de tipo Especifica o tipo de controle que é retornado.

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

    O exemplo de código a seguir mostra como inicializar um controle em um projeto voltado para o .NET Framework 4. Nesse código, o GetFormRegionControl o método não tem um parâmetro de tipo. Você deve converter o valor de retorno para o tipo de controle que você está inicializando.

    Me.olkTextBox1 = CType(GetFormRegionControl("OlkTextBox1"), Microsoft.Office.Interop.Outlook.OlkTextBox)
    
    this.olkTextBox1 = (Microsoft.Office.Interop.Outlook.OlkTextBox)GetFormRegionControl("OlkTextBox1");
    
  5. Adicione um novo item de região de formulário do Outlook ao seu projeto. Abra o arquivo code-behind para a nova região de formulário, localize o YourNewFormRegionFactory e WindowFormRegionCollection classes no arquivo e copie essas classes para a área de transferência.

  6. Exclua a nova região de formulário que você adicionou ao seu projeto.

  7. No arquivo code-behind da região de formulário que você está atualizando a trabalhar no projeto redirecionado, localize o YourOriginalFormRegionFactory e WindowFormRegionCollection de classes e substituí-los com o código que você copiou de nova região de formulário.

  8. No YourNewFormRegionFactory e WindowFormRegionCollection Pesquisar todas as referências a classes, o YourNewFormRegion de classe e alterar cada referência para o YourOriginalFormRegion classe em vez disso. Por exemplo, se a região de formulário que você está atualizando é nomeada SalesDataFormRegion e a nova região de formulário que você criou na etapa 5 é nomeada FormRegion1, altere todas as referências de FormRegion1 para SalesDataFormRegion.

Instanciação de Classes de região de formulário

Você deve modificar qualquer código que instancia dinamicamente a determinadas classes de região de formulário. Em projetos destinados a.NET Framework 3.5, você pode instanciar classes da região de formulário, como Microsoft.Office.Tools.Outlook.FormRegionManifest diretamente. Em projetos destinados a .NET Framework 4, essas classes são interfaces que você não pode criar uma instância diretamente.

Se a estrutura de destino do projeto é alterada para o .NET Framework 4, você deve criar as interfaces usando métodos fornecidos pelo Globals.Factory propriedade. For more information about the Globals.Factory property, see Acesso global a objetos em projetos do Office.

A tabela a seguir lista os tipos de região de formulário e o método a ser usado para instanciar tipos em projetos destinados a .NET Framework 4.

Type

Método de fábrica para usar

FormRegionCustomAction

CreateFormRegionCustomAction()

FormRegionInitializingEventArgs

CreateFormRegionInitializingEventArgs

FormRegionManifest

CreateFormRegionManifest

Consulte também

Conceitos

Migrando soluções do Office para o.NET Framework 4

Outros recursos

Criação de regiões de formulário do Outlook