Condividi tramite


Classe CustomTaskPane (System 2007)

Aggiornamento: novembre 2007

Rappresenta un riquadro attività personalizzato in un'applicazione di Microsoft Office.

Spazio dei nomi:  Microsoft.Office.Tools
Assembly:  Microsoft.Office.Tools.Common.v9.0 (in Microsoft.Office.Tools.Common.v9.0.dll)

Sintassi

Public NotInheritable Class CustomTaskPane _
    Implements IDisposable

Dim instance As CustomTaskPane
public sealed class CustomTaskPane : IDisposable

Note

Utilizzare la classe CustomTaskPane in un componente aggiuntivo a livello di applicazione per modificare un riquadro attività personalizzato oppure per rispondere a eventi correlati alla modifica della posizione o della visibilità del riquadro attività personalizzato.

Per controllare le dimensioni o la posizione del riquadro attività personalizzato, è possibile utilizzare proprietà quali Height, Width e Visible.

Per rispondere a eventi correlati allo spostamento del riquadro attività personalizzato o alla modifica della visibilità del riquadro, è possibile gestire gli eventi DockPositionChanged e VisibleChanged.

I riquadri attività sono pannelli dell'interfaccia utente in genere ancorati a un lato della finestra di un'applicazione. Per informazioni sulla creazione di riquadri attività personalizzati, vedere Cenni preliminari sui riquadri attività personalizzati.

Esempi

Nell'esempio di codice seguente viene illustrato come creare un riquadro attività personalizzato utilizzando il metodo Add(UserControl, String). Nell'esempio vengono utilizzate proprietà dell'oggetto CustomTaskPane per impostare l'aspetto predefinito del riquadro attività personalizzato e viene definito un gestore per l'evento DockPositionChanged. Per la compilazione dell'esempio, copiare il codice nella classe ThisAddIn in un progetto di componente aggiuntivo per un'applicazione che supporta riquadri attività personalizzati. Sostituire il metodo ThisAddIn_Startup predefinito nella classe ThisAddIn con il metodo ThisAddIn_Startup dell'esempio. Nell'esempio si presuppone inoltre che il progetto contenga un oggetto UserControl denominato MyUserControl e che l'oggetto UserControl contenga un oggetto FlowLayoutPanel denominato 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;
        }
    }
}

Gerarchia di ereditarietà

System.Object
  Microsoft.Office.Tools.CustomTaskPane

Codice thread safe

Qualsiasi membro static (Shared in Visual Basic) pubblico di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.

Vedere anche

Riferimenti

Membri CustomTaskPane

Spazio dei nomi Microsoft.Office.Tools

Altre risorse

Guida introduttiva alla programmazione di componenti aggiuntivi a livello di applicazione

Cenni preliminari sui riquadri attività personalizzati

Gestione dei riquadri attività personalizzati in più finestre dell'applicazione

Procedura: aggiungere un riquadro attività personalizzato a un'applicazione

Procedura dettagliata: automazione di un'applicazione da un riquadro attività personalizzato