Excel 2016自定义任务窗格

时间:2016-09-24 12:47:11

标签: excel vsto add-in customtaskpane

我在多个Excel 2016文档中遇到一个CustomTaskPane问题。我使用WinForm用户控件

创建并显示任务窗格
 Dim cll As cMyControl = New cMyControl

 Private Sub ThisAddIn_Startup() Handles Me.Startup
    CustomTaskPanes.Add(cll, "Panel")
 End Sub

我可以在所有工作簿中看到此面板。

Private Sub Application_WorkbookActivate(Wb As Microsoft.Office.Interop.Excel.Workbook) Handles Application.WorkbookActivate
    CustomTaskPanes.RemoveAt(0)
    CustomTaskPanes.Add(cll, "Panel")
End Sub

问题是面板已创建但为空。有什么方法可以在CustomTaskPanels之间传递用户控件?或者如何将创建的面板附加到另一个Excel窗口?因为我不想为每个工作簿激活创建新的cll对象。

1 个答案:

答案 0 :(得分:0)

Excel 2016是SDI,然后您需要存储每个任务窗格的引用。您需要使用Globals.ThisAddIn.Application.Hwnd来标识Excel窗口。

请点击此处查看解决方案:https://stackoverflow.com/a/24732000/3205529