using System; using System.Collections.Generic; using System.Text; using Microsoft.Office.Interop.Word; using VSTOPane = Microsoft.Office.Tools.CustomTaskPane; namespace WordAddIn2 { public class TaskPaneContainer { public delegate VSTOPane TaskPaneCreationCallback(string title, Window window); Dictionary _panes = new Dictionary(); TaskPaneCreationCallback _paneCreationCallback; public TaskPaneContainer(TaskPaneCreationCallback paneCreationCallback) { _paneCreationCallback = paneCreationCallback; } public void Show(string title) { VSTOPane pane = null; Window activeWindow = Globals.ThisAddIn.Application.ActiveWindow; if (_panes.ContainsKey(activeWindow)) { pane = _panes[Globals.ThisAddIn.Application.ActiveWindow]; } else { pane = _paneCreationCallback(title, activeWindow); _panes.Add(activeWindow, pane); } pane.Visible = true; } public void HideCurrent() { Window activeWindow = Globals.ThisAddIn.Application.ActiveWindow; if (_panes.ContainsKey(activeWindow)) { _panes[activeWindow].Visible = false; } } } }