Compartilhar via


Atualizando as regiões do formulário em projetos do Office migrados para o .NET Framework 4 ou o .NET Framework 4.5

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

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

Se a estrutura de destino do projeto é modificado a .NET Framework 4 ou a .NET Framework 4.5, você deve modificar o código gerado da região do formulário.As alterações feitas são diferentes para regiões do formulário que você criou no Visual Studio e em áreas do formulário que você importou do Outlook.Para obter mais informações sobre as diferenças entre esses tipos de regiões do 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 que você criar no Visual Studio

  1. Abra a região de formulário o arquivo code-behind no editor de códigos.Esse arquivo é chamado YourFormRegion. Designer.cs ou YourFormRegion. Designer.vb.Para ver este arquivo em projetos Visual Basic, clique no botão de Mostrar todos os arquivos em Gerenciador de Soluções.

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

  3. Modifique o construtor da classe da região do formulário conforme os exemplos de código.

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

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

  6. Exclua a nova área do formulário que você adicionou ao seu projeto.

  7. No arquivo code-behind da região do formulário que você está atualizando para trabalhar no projeto, retargeted localizar YourOriginalFormRegionFactory e WindowFormRegionCollection classes e substitua-o pelo código que você copiou de região do formulário.

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

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

  1. Abra a região de formulário o arquivo code-behind no editor de códigos.Esse arquivo é chamado YourFormRegion. Designer.cs ou YourFormRegion. Designer.vb.Para ver este arquivo em projetos Visual Basic, clique no botão de Mostrar todos os arquivos em Gerenciador de Soluções.

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

  3. Modifique o construtor da classe da região do formulário conforme os exemplos de código.

    O exemplo de código a seguir mostra o construtor de uma classe de região de formulário em um projeto que tem como alvo 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 que tem como alvo .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 de código no método de InitializeControls que inicializa um controle na classe da região do formulário, modifique o código como mostrado abaixo.

    O exemplo de código a seguir mostra como inicializar um controle em um projeto que tem como alvo o .NET Framework 3.5.Nesse código, o método de GetFormRegionControl tem um parâmetro de tipo que 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 que tem como alvo .NET Framework 4.Nesse código, o método de GetFormRegionControl não tem um parâmetro de tipo.Você deve converter o valor de retorno para o tipo de controle que você estiver inicializando.

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

  6. Exclua a nova área do formulário que você adicionou ao seu projeto.

  7. No arquivo code-behind da região do formulário que você está atualizando para trabalhar no projeto, retargeted localizar YourOriginalFormRegionFactory e WindowFormRegionCollection classes e substitua-o pelo código que você copiou de região do formulário.

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

Criando uma instância de classes região de formulário

Você deve alterar qualquer código que criar uma instância dinamicamente determinadas classes de região do formulário.Em projetos que destinam-se o .NET Framework 3.5, você pode criar uma instância de classes região de formulário como Microsoft.Office.Tools.Outlook.FormRegionManifest diretamente.Em projetos que destinam-se .NET Framework 4 ou .NET Framework 4.5, essas classes são interfaces que você não pode criar uma instância diretamente.

Se a estrutura de destino do seu projeto é modificado a .NET Framework 4 ou a .NET Framework 4.5, você deve criar uma instância interfaces usando os métodos que são fornecidos pela propriedade de Globals.Factory .Para obter mais informações sobre a propriedade Globals.Factory, consulte Acesso global a objetos em projetos do Office.

A tabela a seguir lista os tipos de região do formulário e o método para usar o para criar uma instância os tipos nos projetos que destinam-se .NET Framework 4 ou .NET Framework 4.5.

Tipo

Método de fábrica a usar

FormRegionCustomAction

CreateFormRegionCustomAction()

FormRegionInitializingEventArgs

CreateFormRegionInitializingEventArgs

FormRegionManifest

CreateFormRegionManifest

Consulte também

Conceitos

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

Outros recursos

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