Compartir a través de


Administrar paneles de tareas personalizados en varias ventanas de la aplicación

Actualización: noviembre 2007

Se aplica a

La información de este tema sólo se aplica a los proyectos especificados de Visual Studio Tools para Office y a las aplicaciones de Microsoft Office.

Tipo de proyecto

  • Proyectos de nivel de aplicación

Aplicación de Microsoft Office

  • Excel 2007

  • InfoPath 2007

  • Outlook 2007

  • PowerPoint 2007

  • Word 2007

Para obtener más información, vea Características disponibles por aplicación y tipo de proyecto.

Al crear un panel de tareas personalizado en una aplicación que utiliza varias ventanas para mostrar documentos y otros elementos, necesita pasos adicionales para asegurarse de que el panel de tareas está visible cuando el usuario espera que lo esté.

Los paneles de tareas personalizados de todas las aplicaciones están asociados a una ventana de marco de documento, que presenta una vista de un documento o un elemento al usuario. El panel de tareas sólo está visible cuando la ventana asociada está visible. Sin embargo, no todas las aplicaciones utilizan las ventanas de marco de documento de la misma manera.

Los grupos de aplicaciones siguientes tienen requisitos de desarrollo diferentes:

  • Outlook

  • Word e InfoPath

  • Excel y PowerPoint

Outlook

Cuando crea un panel de tareas personalizado para Outlook, éste se asocia a una ventana de explorador o de inspector específica. Los exploradores son ventanas que muestran el contenido de una carpeta y los inspectores son ventanas que muestran un elemento, como un mensaje de correo electrónico o una tarea.

Si desea mostrar un panel de tareas personalizado con varias ventanas de explorador o de inspector, debe crear una nueva instancia del panel cuando se abre una nueva ventana de explorador o de inspector. Para ello, administre un evento que se provoque al crear una ventana de explorador o inspector y, a continuación, cree el panel de tareas en el controlador de eventos. También puede administrar los eventos del explorador y del inspector para ocultar o mostrar paneles de tareas en función de la ventana visible.

Para asociar el panel de tareas a un explorador o un inspector específico, use el método CustomTaskPaneCollection.Add(UserControl, String, Object) para crear el panel de tareas y pase el objeto Explorer o Inspector al parámetro window. Para obtener más información acerca de la creación de paneles de tareas personalizados, vea Información general sobre los paneles de tareas personalizados.

Para tener acceso a un tutorial que muestra cómo crear un panel de tareas para cada mensaje de correo electrónico que se abre, vea Tutorial: Mostrar paneles de tareas personalizados con mensajes de correo electrónico en Outlook.

Eventos de Outlook

Para supervisar el estado de las ventanas del explorador, puede administrar los siguientes eventos relacionados con el explorador:

Para supervisar el estado de las ventanas de inspector, puede administrar los siguientes eventos relacionados con el inspector:

Evitar varias instancias de un panel de tareas personalizado en Outlook

Para evitar que las ventanas de Outlook muestren varias instancias de un panel de tareas personalizado, quite explícitamente el panel de tareas personalizado de la colección CustomTaskPanes de la clase ThisAddIn cuando se cierra cada ventana. Llame al método Remove en un evento que se produce cuando se cierra una ventana, como ExplorerEvents_10_Event.Close o InspectorEvents_10_Event.Close.

Si no quita explícitamente el panel de tareas personalizado, las ventanas de Outlook pueden mostrar varias instancias del mismo. Outlook recicla a veces las ventanas, que una vez recicladas mantienen referencias a los paneles de tareas personalizados que estén adjuntos a ellas.

Word e InfoPath

Word e InfoPath muestran cada documento en una ventana de marco de documento diferente. Al crear un panel de tareas personalizado para estas aplicaciones, el panel sólo se asocia a un documento concreto. Si el usuario abre un documento diferente, el panel de tareas personalizado se oculta hasta que el documento anterior está de nuevo visible.

Si desea mostrar un panel de tareas personalizado con varios documentos, cree una nueva instancia del panel cuando el usuario cree un nuevo documento o abra un documento existente. Para ello, administre eventos que se provoquen al crear o abrir un documento y, a continuación, cree el panel de tareas en los controladores de eventos. También puede administrar eventos de documento para ocultar o mostrar los paneles de tareas en función del documento visible.

Para asociar el panel de tareas a una ventana de documento específica, use el método CustomTaskPaneCollection.Add(UserControl, String, Object) para crear el panel de tareas y pase un objeto Microsoft.Office.Interop.Word.Window (para Word) o Microsoft.Office.Interop.InfoPath.WindowObject (para InfoPath) al parámetro window. Para obtener más información acerca de la creación de paneles de tareas personalizados, vea Información general sobre los paneles de tareas personalizados.

Eventos de Word

Para supervisar el estado de ventanas de documento en Word, puede administrar los eventos siguientes:

Eventos de InfoPath

Para supervisar el estado de ventanas de documento en InfoPath, puede administrar los eventos siguientes:

Excel y PowerPoint

Excel y PowerPoint crean una ventana de marco de documento para todos los documentos (es decir, para libros y presentaciones). Al crear un panel de tareas personalizado en estas aplicaciones, el panel de tareas está disponible en cada documento abierto de la aplicación. No es necesario realizar trabajo adicional para garantizar que el panel de tareas se muestra en cada documento.

Sin embargo, dependiendo del documento activo, podría desear ocultar o mostrar el panel de tareas o podría desear mostrar diferentes elementos de la interfaz de usuario o datos en el panel de tareas. Para ello, administre eventos que se provoquen al crear, abrir o activar un documento y, a continuación, actualice el panel de tareas en los controladores de eventos.

Eventos de Excel

Para supervisar el estado de los libros en Excel, puede administrar los eventos siguientes:

Eventos de PowerPoint

Para supervisar el estado de las presentaciones en PowerPoint, puede administrar los eventos siguientes:

  • Microsoft.Office.Interop.PowerPoint.EApplication_Event.AfterNewPresentation

  • Microsoft.Office.Interop.PowerPoint.EApplication_Event.AfterPresentationOpen

  • Microsoft.Office.Interop.PowerPoint.EApplication_Event.NewPresentation

  • Microsoft.Office.Interop.PowerPoint.EApplication_Event.PresentationOpen

  • Microsoft.Office.Interop.PowerPoint.EApplication_Event.WindowActivate

  • Microsoft.Office.Interop.PowerPoint.EApplication_Event.WindowDeactivate

Ejemplo

El ejemplo de código siguiente muestra cómo ocultar o mostrar un panel de tareas personalizado en un controlador de eventos para el evento WorkbookActivate de un complemento de Excel. Cuando se activa cada libro, el panel de tareas sólo está visible si el libro se denomina SalesData.xls; de lo contrario, se oculta el panel de tareas. Para ejecutar este ejemplo, reemplace el controlador de eventos ThisAddIn_Startup predeterminado que Visual Studio Tools para Office genera en la clase ThisAddIn con el código siguiente. Este ejemplo supone que su proyecto incluye un UserControl denominado 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;
}

Vea también

Tareas

Cómo: Agregar un panel de tareas personalizado a una aplicación

Tutorial: Mostrar paneles de tareas personalizados con mensajes de correo electrónico en Outlook

Cómo: Mostrar paneles de tareas personalizados con mensajes de correo electrónico en Outlook

Tutorial: Sincronizar un panel de tareas personalizado con un botón de la cinta de opciones

Conceptos

Información general sobre los paneles de tareas personalizados