2016-09-24 187 views
1

我在多个Excel 2016文档中遇到一个CustomTaskPane问题。我用我的WinForm用户控件创建并显示任务窗格Excel 2016自定义任务窗格

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对象。

回答

0

Excel 2016是一个SDI,然后您需要存储每个任务面板的参考。您需要使用Globals.ThisAddIn.Application.Hwnd来识别Excel窗口。

在这里看到一个解决方案:https://stackoverflow.com/a/24732000/3205529

+0

如果我没有理解错,这为每个窗口独特的自定义任务窗格(具有唯一的新的用户控件)。但是我需要使用当前用户控件的新任务窗格(用户控件中的所有用户更改都会保留)。 – milos

相关问题