Compartir a través de


CustomTaskPane (Clase) (2007 System)

Actualización: noviembre 2007

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

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

Sintaxis

Public NotInheritable Class CustomTaskPane _
    Implements IDisposable

Dim instance As CustomTaskPane
public sealed class CustomTaskPane : IDisposable

Comentarios

Utilice la clase 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.

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.

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.

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;
        }
    }
}

Jerarquía de herencia

System.Object
  Microsoft.Office.Tools.CustomTaskPane

Seguridad para subprocesos

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Vea también

Referencia

CustomTaskPane (Miembros)

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