1、首先在要显示taskpane的时候获取到当前窗口的句柄:int hwnd = this.Application.ActiveWindow.Hwnd;
2、然后我们通过一个字典来获取当前窗口对应的taskpane是否创建TaskPanels.TryGetValue(this.Application.ActiveWindow.Hwnd, out pane);
3、如果 pane 不存在 就创建并存储到亨蚂擤缚字典中UserControl ctrl= new UserControl(像粜杵泳); Microsoft.Office.Tools.CustomTaskPane pane = this.CustomTaskPanes.Add(ctrl, "***", this.Application.ActiveWindow); /// 这一步很重要将决定是否显示到当前窗口,第三个参数的意思就是依附到那个窗口 pane.DockPosition = Office.MsoCTPDockPosition.msoCTPDockPositionRight; pane.Width = 320; TaskPanels.Add(this.Application.ActiveWindow.Hwnd, pane);
4、设置pane的Visible属性即可显示出来pane.Visible = true;