VSTO中的浮动面板需要使用UserControl来作为界面,通过 Globals.ThisAddIn.CustomTaskPanes.Add(UserControl , title) 添加。因为需要全局唯一的面板,所以要在ThisAddIn中进行静态声明:

{{EJS0}}

在Ribbon设计器按钮的显示事件上:

(这里的ThisAddIn不是Globals中的,非插件对象,而是指当前项目的ThisAddIn类)

{{EJS1}}

在添加之后如果关闭就无法在打开,这是因为窗口在关闭时,该窗口就已经销毁了,接下来要改动设计器中的销毁代码,打开用户控件的设计器代码,我这里是Inspector.Designer.cs,如果找不到就点击解决方案资源管理器中用户控件左面的小箭头。

然后把Dispose中原来的方法注释掉:

{{EJS2}}