Partilhar via


Demonstra Passo a passo: Exibir painéis de tarefas Personalizars com mensagens de email no Outlook

Se aplica a

As informações contidas neste tópico se aplicam apenas às especificado Ferramentas do Visual Studio para o Office projetos e aplicativos do Microsoft Office.

Tipo de Projeto

  • Projetos de nível de aplicativo

Aplicativo do Microsoft Office

  • Outlook 2007

For more information, see Recursos disponíveis pelo aplicativo e o tipo de projeto.

Esta explicação passo a passo demonstra como exibir um Exclusivo instância de um painel de tarefas Personalizars com cada mensagem de email que é criado ou aberto.Os usuários podem exibir ou ocultar o painel de tarefas Personalizar utilizando um botão na Faixa de Opções de cada mensagem de email.

Para exibir um painel de tarefas Personalizar com janelas de Explorer ou Inspector Múltiplo, você deve criar uma instância do painel de tarefas Personalizar para cada janela que é aberto.Para obter mais informações sobre o comportamento dos painéis de tarefas Personalizar no Outlook windows, consulte Visão geral de painéis de tarefas Personalizar.

Observação:

Isso explicação passo a passo apresenta o Adicionar-in código Em pequenas seções para facilitar a discutir a lógica por trás o código.Para exibir o todo conteúdo de cada arquivo que você editar nesta explicação passo a passo , consulte Como: Exibir painéis de tarefas Personalizars com mensagens de email no Outlook.

Essa explicação passo a passo ilustra as seguintes tarefas:

  • Criando a interface de usuário (UI) do painel de tarefas Personalizar.

  • Criando uma interface do usuário da Faixa de Opções Personalizar.

  • Exibir a interface de usuário da Faixa de Opções Personalizar com mensagens de email.

  • Criando uma classe para gerenciar janelas Inspector e painéis de tarefas Personalizars.

  • Inicializando e limpeza de recursos usados pelo Adicionar-in.

  • Sincronizando o botão de Alternar da Faixa de Opções com o painel de tarefas Personalizar.

Observação:

Seu computador pode mostrar diferentes nomes ou localizações para alguns dos elementos de interface do usuário do Visual Studio nas instruções a seguir.A edição do Visual Studio que você possui e as configurações que você usa determinam esses elementos.Para obter mais informações, consulte Configurações do Visual Studio.

Pré-requisitos

Para completar este passo a passo, são necessários os seguintes componentes:

  • Ferramentas do Visual Studio para o Office (um componente opcional do O Visual Studio 2008 Professional e Visual Studio Team System).

  • Microsoft Office Outlook 2007.

Ferramentas do Visual Studio para o Office é instalado por padrão com as versões listadas do Visual Studio.Para Marcar se ele está instalado, Marcar Instalando o Visual Studio Tools para Office.

Criando o projeto

Painéis de tarefas Personalizars são implementados no nível de aplicativo Adicionar-ins.Iniciar Criando um add - in do projeto para o Outlook 2007.

Para criar um novo projeto

  • Criar um Outlook Adicionar no projeto com o nome OutlookMailItemTaskPane.Usar o Outlook Adicionar no modelo de projeto para o Microsoft Office Sistema de 2007.For more information, see Como: Criar o Visual Studio Tools para projetos do Office.

    Visual Studio abre o ThisAddIn.cs ou ThisAddIn.vb arquivo de código e adiciona o projeto de OutlookMailItemTaskPane para Gerenciador de Soluções.

Criar a interface do usuário do painel de tarefas Personalizar

É não visual designer para painéis de tarefas Personalizars, mas você pode criar um Controlarar de usuário com a interface do usuário você deseja.Painel de tarefas Personalizar neste Adicionar - in possui uma interface do usuário simples que contém um Controlarar de TextBox.Posteriormente nesta explicação passo a passo, você irá adicionar o Controlarar de usuário para o painel de tarefas Personalizar.

Para Design a interface do usuário do painel de tarefas Personalizar

  1. Em Gerenciador de Soluções, clique no projeto de OutlookMailItemTaskPane.

  2. On the Project menu, click Add User Control.

  3. Na caixa de diálogo Add Novo Item , Alterar o nome do usuário controle TaskPaneControle clique em Adicionar.

    O Controlarar de usuário abre no designer.

  4. Na guia Controles ComComumComum de De caixa de ferramentas, arraste Comum Caixa de Texto ao controle de usuário.

Criar a interface do usuário da Faixa de Opções

Um dos objetivos para isso Adicionar - in é dar aos usuários uma maneira para ocultar ou exibir o painel de tarefas Personalizar na faixa de opções de cada mensagem de email.Para fornecer a interface de usuário, crie uma interface do usuário da Faixa de Opções Personalizar que exibe um botão de Alternar que os usuários podem Clique para exibir ou ocultar o painel de tarefas Personalizar.

Para criar uma interface do usuário da Faixa de Opções Personalizar

  1. No menu Project, clique em Add New Item.

  2. No Adicionar Novo Item caixa de diálogo, Selecionar Da Faixa de Opções (Designer Visual).

  3. Alterar o nome da Novo fita para ManageTaskPaneRibbone clique em Adicionar.

    O arquivo de de ManageTaskPaneRibbon.vb de ou ManageTaskPaneRibbon.cs abre no Designer da Faixa de Opções e exibe uma Guiaulação padrão e o AAgruparar.

  4. No Designer de Faixa de Opções, clique em Grupo1.

  5. Na janela Propriedades, defina a propriedade do Rótulo aGerente de painel de tarefas.

  6. Na guia Controles da Faixa de Opções de Officede De caixa de ferramentas, arraste um controle ToggleButton o AAgruparar de Gerente do painel de tarefas.

  7. Clique em ToggleButton1.

  8. Na janela Propriedades , defina a propriedade do Rótulo para mostrar o painel de tarefas.

Exibir a interface do usuário Personalizar da Faixa de Opções com mensagens de email

O painel de tarefas Personalizar que você criar neste explicação passo a passo é projetado para aparecer somente com janelas Inspector que contêm mensagens de email.Portanto, defina as propriedades para exibir a interface do usuário da Faixa de Opções Personalizar somente com essas janelas.

Para exibir a interface de usuário da Faixa de Opções Personalizar com mensagens de email

  1. No Designer de Faixa de Opções, clique em ManageTaskPaneRibbon da Faixa de Opções.

  2. Na janela Propriedades , clique Soltar Soltar-Para Baixo Avançar RibbonTypee Selecionar Microsoft.Outlook.Mail.Redigir e Microsoft.Outlook.Mail.Read.

Criando uma classe para gerenciar de Windows do inspetor e painéis de tarefas Personalizars

Há vários casos em que o Adicionar - in deve identificar o painel de tarefas Personalizar é associado uma mensagem de email específico.Nesses casos Incluir o seguinte:

  • Quando o usuário fecha uma mensagem de email.Nesse maiúscminúsc, o suplemento deve Remover painel de tarefas Personalizar correspondente para garantir que recursos utilizados pelo Adicionar-in são limpos corretamente.

  • Quando o usuário fecha o painel de tarefas Personalizar.Nesse maiúscminúsc, o Adicionar - in deve atualizar o estado do botão de Alternar na faixa de opções da mensagem de email.

  • Quando o usuário clica no botão de Alternar na Faixa de Opções.Nesse maiúscminúsc, o Adicionar - in necessário ocultar ou exibir o painel de tarefas correspondente.

Para habilitar o Adicionar-in controlar qual painel de tarefas Personalizar é associado a cada mensagem de email aberta, Criar uma classe Personalizar que envolve os pares de Inspector e CustomTaskPane objetos.Essa classe cria um novo objeto de painel de tarefas Personalizar para cada mensagem de email e exclui o painel de tarefas Personalizar quando a mensagem de email correspondente for fechada.

Para criar uma classe para gerenciar janelas Inspector e painéis de tarefas Personalizars

  1. Em Gerenciador de Soluções, clique com o botão direito do mouse no ThisAddIn.cs ou ThisAddIn.vb arquivo e clique em Exibir Code.

  2. Adicionar as seguintes instruções para o início do arquivo.

    Imports System.Collections.Generic
    Imports Microsoft.Office.Tools
    Imports Office = Microsoft.Office.Core
    Imports Outlook = Microsoft.Office.Interop.Outlook
    
    using Microsoft.Office.Tools;
    
  3. Adicione o seguinte código para o de ThisAddIn.cs ThisAddIn.vb arquivo ou, fora a classe ThisAddIn (para o Visual C#, adicione esse código dentro a OutlookMailItemTaskPane Namespace).A classe InspectorWrapper gerencia um par de objetos de Inspector e CustomTaskPane.Você concluirá a definição dessa classe nas etapas a seguir.

    Public Class InspectorWrapper
        Private inspector As Outlook.Inspector
        Private WithEvents inspectorEvents As Outlook.InspectorEvents_Event
        Private WithEvents taskPane As CustomTaskPane
    
    public class InspectorWrapper
    {
        private Outlook.Inspector inspector;
        private CustomTaskPane taskPane;
    
  4. Adicione o seguinte construtor após o código que você Adicionado na etapa anterior.Esse construtor cria e inicializa um novo painel de tarefas Personalizar associado com o objeto Inspector que é passado.Em C#, o construtor anexa também manipuladores de eventos para o evento Close do objeto Inspector e para o evento VisibleChanged do objeto CustomTaskPane.

    Public Sub New(ByVal Inspector As Outlook.Inspector)
        Me.inspector = Inspector
        inspectorEvents = TryCast(Me.inspector, Outlook.InspectorEvents_Event)
        taskPane = Globals.ThisAddIn.CustomTaskPanes.Add(New TaskPaneControl(), _
            "My task pane", Inspector)
    End Sub
    
    public InspectorWrapper(Outlook.Inspector Inspector)
    {
        inspector = Inspector;
        ((Outlook.InspectorEvents_Event)inspector).Close +=
            new Outlook.InspectorEvents_CloseEventHandler(InspectorWrapper_Close);
    
        taskPane = Globals.ThisAddIn.CustomTaskPanes.Add(
            new TaskPaneControl(), "My task pane", inspector);
        taskPane.VisibleChanged += new EventHandler(TaskPane_VisibleChanged);
    }
    
  5. Adicione o seguinte método após o código que você Adicionado na etapa anterior.Esse método é um manipulador de eventos para o evento VisibleChanged do objeto CustomTaskPane contido na classe InspectorWrapper.Esse código atualiza o estado do botão Alternar sempre que o usuário abre ou fecha o painel de tarefas Personalizar.

    Private Sub TaskPane_VisibleChanged(ByVal sender As Object, ByVal e As EventArgs) _
        Handles taskPane.VisibleChanged
        Globals.Ribbons(inspector).ManageTaskPaneRibbon.ToggleButton1.Checked = taskPane.Visible
    End Sub
    
    void TaskPane_VisibleChanged(object sender, EventArgs e)
    {
        Globals.Ribbons[inspector].ManageTaskPaneRibbon.toggleButton1.Checked = 
            taskPane.Visible;
    }
    
  6. Adicione o seguinte método após o código que você Adicionado na etapa anterior.Esse método é um manipulador de eventos para o evento Close do objeto de Inspector que contém a mensagem de email atual.O manipulador de eventos libera recursos quando a mensagem de email é fechada.O manipulador de eventos também remove o painel de tarefas Personalizar atual da coleção CustomTaskPanes.Isso ajuda a evitar várias instâncias do painel de tarefas Personalizar quando o Avançar mensagem de email é aberta.

    Sub InspectorWrapper_Close() Handles inspectorEvents.Close
        If Not (taskPane Is Nothing) Then
            Globals.ThisAddIn.CustomTaskPanes.Remove(taskPane)
        End If
    
        taskPane = Nothing
        Globals.ThisAddIn.InspectorWrappers.Remove(inspector)
        RemoveHandler inspectorEvents.Close, AddressOf InspectorWrapper_Close
        inspector = Nothing
    End Sub
    
    void InspectorWrapper_Close()
    {
        if (taskPane != null)
        {
            Globals.ThisAddIn.CustomTaskPanes.Remove(taskPane);
        }
    
        taskPane = null;
        Globals.ThisAddIn.InspectorWrappers.Remove(inspector);
        ((Outlook.InspectorEvents_Event)inspector).Close -=
            new Outlook.InspectorEvents_CloseEventHandler(InspectorWrapper_Close);
        inspector = null;
    }
    
  7. Adicione o seguinte código após o código que você Adicionado na etapa anterior.Posteriormente nesta explicação passo a passo, você chamará esta propriedade de um método na interface do Personalizar da Faixa de Opções usuário para exibir ou ocultar o painel de tarefas Personalizar.

        Public ReadOnly Property CustomTaskPane() As CustomTaskPane
            Get
                Return taskPane
            End Get
        End Property
    End Class
    
        public CustomTaskPane CustomTaskPane
        {
            get
            {
                return taskPane;
            }
        }
    }
    

Inicializando e limpeza backup recursos usados pelo Adicionar - no

Adicione código à classe ThisAddIn para inicializar o Adicionar-in quando ele for carregado e para Apagar recursos utilizados pelo Adicionar-in quando ele for descarregado.Você inicializar o Adicionar-in por Configuração up um manipulador de eventos para o evento NewInspector e passando Tudo as mensagens de email existentes a esse manipulador de eventos.Quando o suplemento é descarregado, desanexar o manipulador de eventos e Apagar os objetos usados pelo Adicionar-in.

Para inicializar e Apagar recursos utilizados pelo Adicionar-in

  1. Na ThisAddIn.cs ou ThisAddIn.vb arquivo, localize a definição da classe ThisAddIn.

  2. Adicionar as seguintes declarações para a classe ThisAddIn:

    • O campo inspectorWrappersValue contém Tudo Inspector e InspectorWrapper objetos que são gerenciados pelo Adicionar-in.

    • O campo inspectors mantém uma referência à coleção de janelas Inspector a instância atual do Outlook.Esta referência impede que o coletor de lixo liberar a memória que contém o manipulador de eventos para o evento NewInspector, que você irá declare na Avançar etapa.

    Private inspectorWrappersValue As New Dictionary(Of Outlook.Inspector, InspectorWrapper)
    Private WithEvents inspectors As Outlook.Inspectors
    
    private Dictionary<Outlook.Inspector, InspectorWrapper> inspectorWrappersValue =
        new Dictionary<Outlook.Inspector, InspectorWrapper>();
    private Outlook.Inspectors inspectors;
    
  3. Substituir o método de ThisAddIn_Startup com o código a seguir.Esse código anexa um manipulador de eventos ao evento NewInspector e ele passa cada objeto Inspector existente para o manipulador de eventos.Se o usuário carrega o Adicionar - in depois Outlook já estiver em execução, o Adicionar - usa essas informações para criar painéis de tarefas Personalizar para Tudo as mensagens de email que já estão abrir.

    Private Sub ThisAddIn_Startup(ByVal sender As Object, ByVal e As System.EventArgs) _
        Handles Me.Startup
    
        inspectors = Me.Application.Inspectors
        Dim inspector As Outlook.Inspector
        For Each inspector In inspectors
            Inspectors_NewInspector(inspector)
        Next inspector
    End Sub
    
    private void ThisAddIn_Startup(object sender, System.EventArgs e)
    {
        inspectors = this.Application.Inspectors;
        inspectors.NewInspector +=
            new Outlook.InspectorsEvents_NewInspectorEventHandler(
            Inspectors_NewInspector);
    
        foreach (Outlook.Inspector inspector in inspectors)
        {
            Inspectors_NewInspector(inspector);
        }
    }
    
  4. Substituir o método de ThisAddIn_ShutDown com o código a seguir.Esse código separa o manipulador de eventos NewInspector e limpa objetos usados pelo Adicionar-in.

    Private Sub ThisAddIn_Shutdown(ByVal sender As Object, ByVal e As System.EventArgs) _
        Handles Me.Shutdown
    
        RemoveHandler inspectors.NewInspector, AddressOf Inspectors_NewInspector
        inspectors = Nothing
        inspectorWrappersValue = Nothing
    End Sub
    
    private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
    {
        inspectors.NewInspector -=
            new Outlook.InspectorsEvents_NewInspectorEventHandler(
            Inspectors_NewInspector);
        inspectors = null;
        inspectorWrappersValue = null;
    }
    
  5. Adicionar manipulador de eventos NewInspector seguir para a classe ThisAddIn.Se um novo Inspector contiver uma mensagem de email, o método cria uma instância de um novo objeto InspectorWrapper para gerenciar a relação entre a mensagem de email e o painel de tarefas correspondente.

    Sub Inspectors_NewInspector(ByVal Inspector As Outlook.Inspector) _
        Handles inspectors.NewInspector
    
        If TypeOf Inspector.CurrentItem Is Outlook.MailItem Then
            inspectorWrappersValue.Add(Inspector, New InspectorWrapper(Inspector))
        End If
    End Sub
    
    void Inspectors_NewInspector(Outlook.Inspector Inspector)
    {
        if (Inspector.CurrentItem is Outlook.MailItem)
        {
            inspectorWrappersValue.Add(Inspector, new InspectorWrapper(Inspector));
        }
    }
    
  6. Adicionar a seguinte propriedade à classe ThisAddIn.Essa propriedade expõe o campo particular inspectorWrappersValue código fora a classe ThisAddIn.

    Public ReadOnly Property InspectorWrappers() As Dictionary(Of Outlook.Inspector, InspectorWrapper)
        Get
            Return inspectorWrappersValue
        End Get
    End Property
    
    public Dictionary<Outlook.Inspector, InspectorWrapper> InspectorWrappers
    {
        get
        {
            return inspectorWrappersValue;
        }
    }
    

Ponto de Verificação

Compilação seu projeto para garantir que ele é compilado sem erros.

ParComCompilação seu projeto

  • Em Gerenciador de Soluções, clique com o botão direito do mouse no projeto de OutlookMailItemTaskPane e clique em Compilação.Verifique se o projeto é compilado sem erros.

Sincronizando o botão de Alternar da Faixa de Opções com o painel de tarefas Personalizar

O botão de Alternar parecerão ser pressionada quando o painel de tarefas é visível e ele aparecerá a não ser pressionada na quando o painel de tarefas é oculto.Para sincronizar o estado do botão com o painel de tarefas Personalizar, modifique o manipulador de eventos Click do botão de Alternar.

Para sincronizar o painel de tarefas Personalizar com o botão de Alternar

  1. No Designer da Faixa de Opções, clique Duplo o botão de Alternar de Do Mostrar painel de tarefas.

    Ferramentas do Visual Studio para o Office gera automaticamente um manipulador de eventos denominado toggleButton1_Click, que manipula o evento Click do botão de Alternar.Ferramentas do Visual Studio para o Office também abre o ManageTaskPaneRibbon.cs ou ManageTaskPaneRibbon.vb arquivo no editor de códigos.

  2. Adicionar as seguintes instruções para a parte superior da ManageTaskPaneRibbon.cs ou ManageTaskPaneRibbon.vb arquivo.

    Imports Microsoft.Office.Tools.Ribbon
    Imports Outlook = Microsoft.Office.Interop.Outlook
    Imports Microsoft.Office.Tools
    
    using Outlook = Microsoft.Office.Interop.Outlook;
    using Microsoft.Office.Tools;
    
  3. Substituir o manipulador de eventos de toggleButton1_Click com o código a seguir.Quando o usuário clica no botão de Alternar, esse método oculta ou exibe o painel de tarefas Personalizar que está associado com a janela Inspector atual.

    Private Sub ToggleButton1_Click(ByVal sender As System.Object, _
        ByVal e As Microsoft.Office.Tools.Ribbon.RibbonControlEventArgs) _
        Handles ToggleButton1.Click
    
        Dim inspector As Outlook.Inspector = e.Control.Context
        Dim inspectorWrapper As InspectorWrapper = Globals.ThisAddIn.InspectorWrappers(inspector)
        Dim taskPane As CustomTaskPane = inspectorWrapper.CustomTaskPane
        If Not (taskPane Is Nothing) Then
            taskPane.Visible = TryCast(sender, RibbonToggleButton).Checked
        End If
    End Sub
    
    private void toggleButton1_Click(object sender, RibbonControlEventArgs e)
    {
        Outlook.Inspector inspector = (Outlook.Inspector)e.Control.Context;
        InspectorWrapper inspectorWrapper = Globals.ThisAddIn.InspectorWrappers[inspector];
        CustomTaskPane taskPane = inspectorWrapper.CustomTaskPane;
        if (taskPane != null)
        {
            taskPane.Visible = ((RibbonToggleButton)sender).Checked;
        }
    }
    

Testar o projeto.

Quando você Iniciar Depurando do projeto, o Outlook abre e o suplemento é carregado.O Adicionar-in exibe um Exclusivo instância do painel de tarefas Personalizar com cada mensagem de e-mEmail que é aberto.Criar várias Novos mensagens de email para testar o código.

Para testar o Adicionar - in

  1. Pressione F5.

  2. No Outlook, clique em de novo para criar uma Novo Email.

  3. Na faixa de opções da mensagem de email, clique a guia de Adicionar-ins e clique no botão de Mostrar painel de tarefas.

    Verifique se um painel de tarefas com o título My de painel de tarefas é exibido com a mensagem de email.

  4. No painel de tarefas, tipo primeiro painel de tarefas na caixa de texto.

  5. Fechar o painel de tarefas.

    Verifique se que o estado do botão Mostrar painel de tarefas é alterado para que ele não é pressionado.

  6. Clique no botão de De Mostrar painel de tarefas de novamente.

    Verifique se o painel de tarefas é aberto e que a caixa de texto ainda contém o painel de tarefas primeiro Cadeia de Caracteres.

  7. No Outlook, clique em de novo para criar um segundo mensagem de email.

  8. Na faixa de opções da mensagem de email, clique a guia de Adicionar-ins e clique no botão de Mostrar painel de tarefas.

    Verifique se um painel de tarefas com o título My de painel de tarefas é exibida com a mensagem de email e a caixa de texto neste painel de tarefas está vazio.

  9. No painel de tarefas, digite segundo painel de tarefas na caixa de texto.

  10. Alterar o foco para a Primeiro mensagem de email.

    Verifique se o painel de tarefas que está associado esta mensagem de email ainda exibido primeiro painel de tarefas na caixa de texto.

Isso adicionar - na também alças mais avançados cenários que você pode tentar.Por exemplo, você pode testar o comportamento ao exibir emails usando o Avançar item de e Item anterior botões.Você também pode testar o comportamento quando você descarregar o Adicionar -, abrir várias mensagens de email e recarregue o Adicionar - in.

Próximas etapas

Você pode saber mais sobre como criar painéis de tarefas Personalizars destes tópicos:

Consulte também

Tarefas

Como: Adicionar um painel de tarefas Personalizar a um aplicativo

Demonstra Passo a passo: Automatizar um aplicativo a partir de um painel de tarefas Personalizar

Demonstra Passo a passo: Sincronizando um painel de tarefas Personalizar com um botão da Faixa de Opções

Como: Exibir painéis de tarefas Personalizars com mensagens de email no Outlook

Conceitos

Visão geral de painéis de tarefas Personalizar

Gerenciamento de painéis de tarefas Personalizars em Múltiplo aplicativos Windows

Visão geral da Faixa de Opções

Visão geral do modelo de objeto do Outlook

Acessando a faixa de opções em tempo de execução