自定义任务面板(有些地方称为侧边面板)即CustomTaskPane,这个类在Microsoft.Office.Tools下面。以下将详细讲述如何实现自定义任务面板。
[代码6] CustomTaskPane的创建和使用
向项目添加一个“用户控件”,
图19 选择“用户控件”
在开发界面根据需要向用户控件窗体上增加相应内容。
图20 设计“用户控件”界面
在ThisAddIn类代码下面添加:
'定义一个带事件的自定义任务面板
Public WithEvents AboutTaskPan As Microsoft.Office.Tools.CustomTaskPane
在ThisAddIn_Startup()中添加
'插件启动时候
Private Sub ThisAddIn_Startup() Handles Me.Startup
System.Diagnostics.Debug.WriteLine("Startup")
Dim userAbout As New UserControl1
'添加自定义任务面板,将会显示用户控件
AboutTaskPan = Globals.ThisAddIn.CustomTaskPanes.Add(userAbout, "任务面板")
AboutTaskPan.Visible = True
AboutTaskPan.DockPosition = Microsoft.Office.Core.MsoCTPDockPosition. msoCTPDockPositionRight
End Sub
运行结果如下:
图21 Excel窗口右侧显示“任务面板”
在Ribbon开发界面下添加一个Group3,并在上面增加一个ToggleButton1:
图22 Ribbon界面下增加ToggleButton
双击ToggleButton1,添加代码:
Private Sub ToggleButton1_Click(sender As Object, e As RibbonControlEventArgs) Handles ToggleButton1.Click
Globals.ThisAddIn.AboutTaskPan.Visible = ToggleButton1.Checked
End Sub
继续在ThisAddIn类代码下面添加如下代码:
Private Sub AboutTaskPan _VisibleChanged(sender As Object, e As EventArgs) Handles AboutTaskPan.VisibleChanged
Dim aboutribbon As Ribbon1 = Globals.Ribbons(0) '.GetRibbon("Ribbon1")
aboutribbon.ToggleButton1.Checked = AboutTaskPan.Visible
End Sub
上述代码在单击ToggleButton1后,根据ToggleButton1被选中的状态来决定是否显示“任务面板”,同时关闭“任务面板”时,调整ToggleButton1的显示。