我有一个 VSTO Excel 插件项目。我有一个名为“ManageTaskPaneRibbon”的功能区,在功能区上我有一个名为“toggleButton1”的切换按钮,它打开一个名为“TaskPaneControl”的用户控件。当我运行插件并单击按钮时,自定义窗格会正确显示在“Book1”中。
但是,当我单击新工作簿时,新工作簿“Book2”中的功能区将打开,并且已单击切换按钮,就像在“Book1”中一样。
Book1 面板关闭,Book2 切换按钮取消选中,Book1 切换按钮保持选中状态
当我单击“Book2”中的切换按钮时,“Book1”中的窗格消失,“Book2”中的切换按钮现在未选中,但“Book1”中的切换按钮仍处于选中状态。
我的测试基于这个演练......
在 ThisAddIn 中,我定义了 TaskPaneControl 的一个实例...
private TaskPaneControl taskPaneControl1;
private Microsoft.Office.Tools.CustomTaskPane taskPaneValue;
在 ThisAddIn_Startup 中,我将 TaskPaneControl 添加到 CustomTaskPanes 字段...
taskPaneControl1 = new TaskPaneControl();
taskPaneValue = this.CustomTaskPanes.Add(taskPaneControl1, "MyCustomTaskPane");
taskPaneValue.VisibleChanged += new EventHandler(taskPaneValue_VisibleChanged);
在切换按钮中单击我添加了代码以显示窗格...
Globals.ThisAddIn.TaskPane.Visible = ((RibbonToggleButton)sender).Checked;
Globals.ThisAddIn.TaskPane.DockPosition = Microsoft.Office.Core.MsoCTPDockPosition.msoCTPDockPositionLeft;
Globals.ThisAddIn.TaskPane.Width = 250;
我不确定在打开新文件时是否需要加载功能区的新实例,或者是否需要创建面板的新实例。当然,我也不知道该怎么做。谁能帮我解决这个问题?
谢谢