CustomTaskPane (Interfaz)

Representa un panel de tareas personalizado en una aplicación de Microsoft Office.

Espacio de nombres:  Microsoft.Office.Tools
Ensamblado:  Microsoft.Office.Tools.Common (en Microsoft.Office.Tools.Common.dll)

Sintaxis

'Declaración
<GuidAttribute("881b42fd-484d-4494-8500-779de4e4aac1")> _
Public Interface CustomTaskPane _
    Inherits IDisposable
[GuidAttribute("881b42fd-484d-4494-8500-779de4e4aac1")]
public interface CustomTaskPane : IDisposable

El tipo CustomTaskPane expone los siguientes miembros.

Propiedades

  Nombre Descripción
Propiedad pública Control Obtiene el UserControl que proporciona la interfaz de usuario del panel de tareas personalizado.
Propiedad pública DockPosition Obtiene o establece un valor que especifica la posición del panel de tareas personalizado respecto de la ventana de aplicación.
Propiedad pública DockPositionRestrict Obtiene o establece un valor que impide acoplar el panel de tareas personalizado en la posición especificada.
Propiedad pública Height Obtiene o establece el alto del panel de tareas personalizado, en puntos.
Propiedad pública Title Obtiene el título del panel de tareas personalizado.
Propiedad pública Visible Obtiene o establece un valor que especifica si el panel de tareas personalizado está visible.
Propiedad pública Width Obtiene o establece el ancho del panel de tareas personalizado, en puntos.
Propiedad pública Window Obtiene la ventana de documento a la que está asociado el panel de tareas personalizado.

Arriba

Métodos

  Nombre Descripción
Método público Dispose Realiza tareas definidas por la aplicación asociadas a la liberación o al restablecimiento de recursos no administrados. (Se hereda de IDisposable).

Arriba

Eventos

  Nombre Descripción
Evento público DockPositionChanged Se produce cuando el usuario cambia la posición de acoplamiento del panel de tareas personalizado o cuando el código cambia el valor de la propiedad DockPosition.
Evento público VisibleChanged Se produce cuando el usuario muestra o cierra el panel de tareas personalizado o cuando el código cambia el valor de la propiedad Visible.

Arriba

Comentarios

Utilice un objeto CustomTaskPane en un complemento de nivel de aplicación para modificar un panel de tareas personalizado o responder cuando cambie la ubicación o visibilidad de dicho panel. Los paneles de tareas son paneles de interfaz de usuario que normalmente están acoplados a un lado de una ventana de aplicación. Para obtener información acerca de cómo se crean los paneles de tareas personalizados, vea Información general sobre los paneles de tareas personalizados.

Para controlar el tamaño o ubicación del panel de tareas personalizado, puede utilizar propiedades como Height, Width y Visible.

Para responder cuando se mueva el panel de tareas personalizado o cambie su visibilidad, puede controlar los eventos DockPositionChanged y VisibleChanged.

Nota

Esta interfaz está implementada por el motor en tiempo de ejecución de Visual Studio Tools para Office. No está prevista su implementación en el código. Para obtener más información, vea Información general sobre el Motor en tiempo de ejecución de Microsoft Visual Studio Tools para Office.

Uso

Esta documentación describe la versión de este tipo que se utiliza en los proyectos de Office destinados a .NET Framework 4. En los proyectos destinados a .NET Framework 3.5, este tipo puede tener miembros diferentes y es posible que los ejemplos de código proporcionados para dicho tipo no funcionen. Para informarse sobre este tipo en los proyectos destinados a .NET Framework 3.5, vea la siguiente sección de referencia en la documentación de Visual Studio 2008: https://go.microsoft.com/fwlink/?LinkId=160658.

Ejemplos

El ejemplo de código siguiente muestra cómo crear un panel de tareas personalizado mediante el método Add(UserControl, String). En el ejemplo se utilizan propiedades del objeto CustomTaskPane para establecer la apariencia predeterminada del panel de tareas personalizado y se define un controlador para el evento DockPositionChanged. Para compilar este ejemplo, copie el código en la clase ThisAddIn de un proyecto de aplicación que admita paneles de tareas personalizados. Reemplace el método ThisAddIn_Startup predeterminado de la clase ThisAddIn por el método ThisAddIn_Startup de este ejemplo. En este ejemplo también se supone que el proyecto contiene un control UserControl denominado MyUserControl, y que UserControl contiene un objeto FlowLayoutPanel denominado FlowPanel.

Private myUserControl1 As MyUserControl
Private WithEvents myCustomTaskPane As Microsoft.Office.Tools.CustomTaskPane

Private Sub ThisAddIn_Startup(ByVal sender As Object, ByVal e As System.EventArgs) _
    Handles Me.Startup

    myUserControl1 = New MyUserControl()
    myCustomTaskPane = Me.CustomTaskPanes.Add(myUserControl1, "New Task Pane")

    With myCustomTaskPane
        .DockPosition = Office.MsoCTPDockPosition.msoCTPDockPositionFloating
        .Height = 500
        .Width = 500
        .DockPosition = Office.MsoCTPDockPosition.msoCTPDockPositionRight
        .Width = 300
        .Visible = True
    End With
End Sub

Private Sub myCustomTaskPane_DockPositionChanged(ByVal sender As Object, _
    ByVal e As EventArgs) Handles myCustomTaskPane.DockPositionChanged

    Dim taskPane As Microsoft.Office.Tools.CustomTaskPane = _
        TryCast(sender, Microsoft.Office.Tools.CustomTaskPane)

    If taskPane IsNot Nothing Then

        ' Adjust sizes of user control and flow panel to fit current task pane size.
        Dim userControl As MyUserControl = TryCast(taskPane.Control, MyUserControl)
        Dim paneSize As System.Drawing.Size = _
            New System.Drawing.Size(taskPane.Width, taskPane.Height)
        userControl.Size = paneSize
        userControl.FlowPanel.Size = paneSize

        ' Adjust flow direction of controls on the task pane.
        If taskPane.DockPosition = _
            Office.MsoCTPDockPosition.msoCTPDockPositionTop Or _
            taskPane.DockPosition = _
            Office.MsoCTPDockPosition.msoCTPDockPositionBottom Then

            userControl.FlowPanel.FlowDirection = _
                System.Windows.Forms.FlowDirection.LeftToRight
        Else
            userControl.FlowPanel.FlowDirection = _
                System.Windows.Forms.FlowDirection.TopDown
        End If
    End If
End Sub
private MyUserControl myUserControl1;
private Microsoft.Office.Tools.CustomTaskPane myCustomTaskPane;

private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
    myUserControl1 = new MyUserControl();
    myCustomTaskPane = this.CustomTaskPanes.Add(myUserControl1,
        "New Task Pane");

    myCustomTaskPane.DockPosition =
        Office.MsoCTPDockPosition.msoCTPDockPositionFloating;
    myCustomTaskPane.Height = 500;
    myCustomTaskPane.Width = 500;

    myCustomTaskPane.DockPosition =
        Office.MsoCTPDockPosition.msoCTPDockPositionRight;
    myCustomTaskPane.Width = 300;

    myCustomTaskPane.Visible = true;
    myCustomTaskPane.DockPositionChanged +=
        new EventHandler(myCustomTaskPane_DockPositionChanged);
}

private void myCustomTaskPane_DockPositionChanged(object sender, EventArgs e)
{
    Microsoft.Office.Tools.CustomTaskPane taskPane =
        sender as Microsoft.Office.Tools.CustomTaskPane;

    if (taskPane != null)
    {
        // Adjust sizes of user control and flow panel to fit current task pane size.
        MyUserControl userControl = taskPane.Control as MyUserControl;
        System.Drawing.Size paneSize = new System.Drawing.Size(taskPane.Width, taskPane.Height);
        userControl.Size = paneSize;
        userControl.FlowPanel.Size = paneSize;

        // Adjust flow direction of controls on the task pane.
        if (taskPane.DockPosition == 
            Office.MsoCTPDockPosition.msoCTPDockPositionTop ||
            taskPane.DockPosition ==
            Office.MsoCTPDockPosition.msoCTPDockPositionBottom)
        {
            userControl.FlowPanel.FlowDirection =
                System.Windows.Forms.FlowDirection.LeftToRight;
        }
        else
        {
            userControl.FlowPanel.FlowDirection =
                System.Windows.Forms.FlowDirection.TopDown;
        }
    }
}

Vea también

Referencia

Microsoft.Office.Tools (Espacio de nombres)

Otros recursos

Introducción a la programación de complementos de nivel de aplicación

Información general sobre los paneles de tareas personalizados

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

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

Tutorial: Automatizar una aplicación desde un panel de tareas personalizado