Gerenciando os painéis de tarefas personalizados em várias janelas de aplicativo

Quando você cria um painel de tarefas personalizado em um aplicativo que usa várias janelas para exibir documentos e outros itens, você precisará tomar medidas adicionais para garantir que o painel de tarefas seja visível quando o usuário espera que ele seja.

Aplicável a: As informações neste tópico se aplicam a projetos de nível de documento e projetos de nível de aplicativo para os seguintes aplicativos: Excel 2007 e Excel 2010; InfoPath 2007 e InfoPath 2010; Outlook 2007 e Outlook 2010; PowerPoint 2007 e PowerPoint 2010; Word 2007 e Word 2010. Para obter mais informações, consulte Recursos disponíveis pelo aplicativo do Office e o tipo de projeto.

Os painéis de tarefas personalizados em todos os aplicativos estão associados uma janela de quadro do documento, apresenta um modo de exibição de um documento ou item para o usuário. O painel de tarefas é visível somente quando a janela associada está visível. Entretanto, nem todos os aplicativos usam janelas de quadro do documento da mesma maneira.

Os seguintes grupos de aplicativos têm requisitos de desenvolvimento diferentes:

  • Outlook

  • Word, o InfoPath e o PowerPoint 2010

  • O Excel e PowerPoint 2007

link para vídeo Para uma demonstração de vídeo relacionada, consulte Fazer como i: Gerenciar os painéis de tarefas nos suplementos do Word?.

Outlook

Quando você cria um painel de tarefas personalizado para Outlook, o painel de tarefas personalizado está associado uma janela do Explorer ou Inspector específica. Explorers são janelas que exibem o conteúdo de uma pasta e inspetores são janelas que exibem um item como, por exemplo, uma mensagem de email ou de uma tarefa.

Para exibir um painel de tarefas personalizado com o windows Explorer ou Inspector de vários, você precisará criar uma nova instância do painel de tarefas personalizado quando uma janela Explorer ou Inspector é aberta. Para fazer isso, manipular um evento é gerado quando uma janela Explorer ou Inspetor é criada e crie o painel de tarefas no manipulador de eventos. Você também pode manipular eventos de navegador e Inspetor para ocultar ou exibir painéis de tarefas dependendo de qual janela está visível.

Para associar o painel de tarefas um navegador específico ou o Inspetor, use o CustomTaskPaneCollection.Add(UserControl, String, Object) método para criar o painel de tarefas e passar a Explorer ou Inspector o objeto para o window parâmetro. Para obter mais informações sobre como criar painéis de tarefas personalizados, consulte Visão geral sobre painéis de tarefas personalizado.

Para uma explicação passo a passo que demonstra como criar um painel de tarefas para cada mensagem de email é aberto, consulte Demonstra Passo a passo: Exibindo os painéis de tarefas personalizados com mensagens de email no Outlook.

Eventos do Outlook

Para monitorar o estado do windows Explorer, você pode manipular os seguintes eventos relacionados ao Explorer:

Para monitorar o estado do windows do Inspetor de propriedades, você pode manipular os seguintes eventos relacionados ao Inspetor de propriedades:

Impedindo a várias instâncias de um painel de tarefas personalizado no Outlook

Para impedir a exibição de várias instâncias de um painel de tarefas personalizado de janelas do Outlook, explicitamente, remova o painel de tarefas personalizado a partir do CustomTaskPanes coleção da ThisAddIn classe quando cada janela é fechada. Chamar o Remove método em um evento que é disparado quando uma janela é fechada, como ExplorerEvents_10_Event.Close ou InspectorEvents_10_Event.Close.

Se você remover explicitamente o painel de tarefas personalizado, o windows do Outlook podem exibir várias instâncias do painel de tarefas personalizado. Outlook recicla, às vezes, o windows e windows reciclados mantém referências a quaisquer painéis de tarefas personalizado que estavam conectados a eles.

Word, o InfoPath e o PowerPoint 2010

Word, o InfoPath e o PowerPoint 2010 exibem cada documento em uma janela de documento diferente do quadro. Quando você cria um painel de tarefas personalizado para esses aplicativos, o painel de tarefas personalizado é associado apenas um documento específico. Se o usuário abre um documento diferente, o painel de tarefas personalizado é oculto até que o documento anterior esteja visível novamente.

Se você deseja exibir um painel de tarefas personalizado com vários documentos, crie uma nova instância do painel de tarefas personalizado quando o usuário cria um novo documento ou abre um documento existente. Para fazer isso, manipular os eventos que são gerados quando um documento for criado ou aberto e, em seguida, criar o painel de tarefas nos manipuladores de eventos. Você também pode manipular os eventos de documento para ocultar ou exibir painéis de tarefas dependendo de qual documento está visível.

Para associar o painel de tarefas de uma janela de documento específico, use o CustomTaskPaneCollection.Add(UserControl, String, Object) método para criar o painel de tarefas e passar um Microsoft.Office.Interop.Word.Window (para o Word), Microsoft.Office.Interop.InfoPath.WindowObject (para o InfoPath), ou Microsoft.Office.Interop.PowerPoint.DocumentWindow (para o PowerPoint) para o window parâmetro.

Para obter mais informações, consulte Gerenciamento de painéis de tarefas em vários Word e documentos do InfoPath. Este artigo é especificamente sobre o Word e o InfoPath, mas os conceitos também se aplicam ao PowerPoint 2010, porque esta versão do PowerPoint possui uma interface de documento único.

Eventos do Word

Para monitorar o estado de janelas de documento no Word, você pode manipular os eventos a seguir:

Eventos do InfoPath

Para monitorar o estado de janelas de documento no InfoPath, você pode manipular os eventos a seguir:

Eventos do PowerPoint

Para monitorar o estado de janelas de documento em 2010 do PowerPoint, você pode manipular os eventos a seguir:

O Excel e PowerPoint 2007

Criam uma janela de quadro do documento para todos os documentos de Excel e PowerPoint 2007 (ou seja, para pastas de trabalho e apresentações). Quando você cria um painel de tarefas personalizado nesses aplicativos, o painel de tarefas está disponível para cada documento aberto no aplicativo. Nenhum trabalho extra de sua parte é necessário para garantir que o painel de tarefas é exibido para cada documento.

Entretanto, dependendo de qual documento está ativo, talvez você queira ocultar ou exibir o painel de tarefas, ou talvez você queira exibir elementos de interface (UI) do usuário diferente ou dados no painel de tarefas. Para fazer isso, manipular eventos que são gerados quando um documento é criado, aberto ou ativado e, em seguida, atualize o painel de tarefas nos manipuladores de eventos.

Eventos do Excel

Para monitorar o estado das pastas de trabalho do Excel, você pode manipular os eventos a seguir:

Eventos do PowerPoint

Para monitorar o estado das apresentações no PowerPoint 2007, você pode manipular os eventos a seguir:

Example

O exemplo de código a seguir demonstra como ocultar ou exibir um painel de tarefas personalizado em um manipulador de eventos para o WorkbookActivate o evento em uma Excel add-in. Quando cada pasta de trabalho é ativada, o painel de tarefas só estará visível se a pasta de trabalho é denominada SalesData.xls; Caso contrário, o painel de tarefas está oculto. Para executar esse exemplo, substituir o padrão ThisAddIn_Startup manipulador de eventos do ThisAddIn classe com o código a seguir. Este exemplo assume que o seu projeto inclui uma UserControl chamado UserControl1.

Dim myUserControl As UserControl1
Dim myCustomTaskPane As Microsoft.Office.Tools.CustomTaskPane

Private Sub ThisAddIn_Startup(ByVal sender As Object, ByVal e As System.EventArgs) _
Handles Me.Startup
    myUserControl = New UserControl1()
    myCustomTaskPane = Me.CustomTaskPanes.Add(myUserControl, "Sales Task Pane")
End Sub

Private Sub Application_WorkbookActivate(ByVal Wb As Excel.Workbook) _
    Handles Application.WorkbookActivate

    If Wb.Name = "SalesData.xlsx" Then
        myCustomTaskPane.Visible = True
    Else
        myCustomTaskPane.Visible = False
    End If
End Sub
private UserControl1 myUserControl;
private Microsoft.Office.Tools.CustomTaskPane myCustomTaskPane;

private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
    this.Application.WorkbookActivate += new Excel.AppEvents_WorkbookActivateEventHandler(
        Application_WorkbookActivate);

    myUserControl = new UserControl1();
    myCustomTaskPane = this.CustomTaskPanes.Add(myUserControl, "Sales Task Pane");
}

void Application_WorkbookActivate(Excel.Workbook Wb)
{
    if (Wb.Name == "SalesData.xlsx")
        myCustomTaskPane.Visible = true;
    else
        myCustomTaskPane.Visible = false;
}

Consulte também

Tarefas

Como: Adicionar um painel de tarefas personalizado a um aplicativo

Demonstra Passo a passo: Exibindo os painéis de tarefas personalizados com mensagens de email no Outlook

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

Demonstra Passo a passo: Sincronizando um painel de tarefas personalizado com um botão da faixa de opções

Outros recursos

Visão geral sobre painéis de tarefas personalizado

Gerenciando os painéis de tarefas em vários documentos do Word e o InfoPath

Histórico de alterações

Date

History

Motivo

Maio de 2010

Adicionados novos detalhes sobre o gerenciamento de tarefas personalizado painéis em 2010 do PowerPoint.

Aprimoramento de informações.