我们进行vsto开发时,当在excel里面定义CustomTaskPane任务窗时,都会碰到这样一个问题,同时打开多份excel文档时,CustomTaskPane只会显示在第一个excel里面文档里,也就是说,CustomTaskPane 并不是相互独立的,接下来我就说说我在开发中解决这个问题的办法,当然有更好的办法欢迎指导。
- 首先,我们定义TaskPanels 集合,用来存放已经创建的CustomTaskPane和它对应的窗体句柄
Public TaskPanels As Dictionary(Of String, Microsoft.Office.Tools.CustomTaskPane) = New Dictionary(Of String, Microsoft.Office.Tools.CustomTaskPane)
-
获取当前活动的excel窗体句柄
Dim hwnd As Integer = Globals.ThisAddIn.Application.ActiveWindow.Hwnd
- 定义CustomTaskPane 和里面的控件

在VSTO Excel开发中,遇到CustomTaskPane只显示在首个文档的问题。通过创建TaskPanels集合存储CustomTaskPane及其关联窗体句柄,获取活动Excel窗口句柄,并根据句柄判断及创建CustomTaskPane,实现每个Excel文档独立显示CustomTaskPane。通过设置DockPosition和Visible属性,确保CustomTaskPane在每个文档中正确显示。
最低0.47元/天 解锁文章
2042

被折叠的 条评论
为什么被折叠?



