Partager via


CustomTaskPane, classe (System 2007)

Mise à jour : novembre 2007

Représente un volet de tâches personnalisé dans une application Microsoft Office.

Espace de noms :  Microsoft.Office.Tools
Assembly :  Microsoft.Office.Tools.Common.v9.0 (dans Microsoft.Office.Tools.Common.v9.0.dll)

Syntaxe

Public NotInheritable Class CustomTaskPane _
    Implements IDisposable

Dim instance As CustomTaskPane
public sealed class CustomTaskPane : IDisposable

Notes

Utilisez la classe CustomTaskPane dans un complément au niveau de l'application pour modifier un volet de tâches personnalisé ou répondre lorsque l'emplacement ou la visibilité du volet de tâches personnalisé change.

Pour contrôler la taille ou l'emplacement du volet de tâches personnalisé, vous pouvez utiliser des propriétés telles que Height, Width et Visible.

Pour répondre lorsque le volet de tâches personnalisé se déplace ou change de visibilité, vous pouvez gérer les événements DockPositionChanged et VisibleChanged.

Les volets de tâches sont des panneaux d'interface utilisateur généralement ancrés à l'un des côtés d'une fenêtre d'application. Pour plus d'informations sur la création de volets de tâches personnalisés, consultez Vue d'ensemble des volets de tâches personnalisés.

Exemples

L'exemple de code suivant montre comment créer un volet de tâches personnalisé à l'aide de la méthode Add(UserControl, String). L'exemple utilise des propriétés de l'objet CustomTaskPane pour définir l'apparence par défaut du volet de tâches personnalisé et définit un gestionnaire d'événements pour l'événement DockPositionChanged. Pour compiler cet exemple, copiez le code dans la classe ThisAddIn, dans un projet de complément pour une application prenant en charge les volets de tâches personnalisés. Remplacez la méthode ThisAddIn_Startup par défaut dans la classe ThisAddIn par la méthode ThisAddIn_Startup dans cet exemple. Cet exemple suppose également que le projet contient un UserControl appelé MyUserControl et le UserControl, un FlowLayoutPanel appelé 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;
        }
    }
}

Hiérarchie d'héritage

System.Object
  Microsoft.Office.Tools.CustomTaskPane

Sécurité des threads

Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Voir aussi

Référence

Membres CustomTaskPane

Microsoft.Office.Tools, espace de noms

Autres ressources

Mise en route de la programmation de compléments d'application

Vue d'ensemble des volets de tâches personnalisés

Gestion des volets de tâches personnalisés dans plusieurs fenêtres d'application

Comment : ajouter un volet de tâches personnalisé à une application

Procédure pas à pas : automatisation d'une application à partir d'un volet de tâches personnalisé