2016-09-24 190 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

相關問題