建立多執行個體工具視窗
您可以透過程式設計工具視窗,以便同時開啟多個執行個體。 根據預設,工具視窗只能開啟一個執行個體。
當您使用多執行個體工具視窗時,可以同時顯示數個相關的資訊來源。 例如,您可以將多行 TextBox 控制項放在多執行個體工具視窗中,以便在程式設計工作階段期間同時提供數個程式碼片段。 此外,例如,您可以將 DataGrid 控制項和下拉式清單方塊放在多執行個體工具視窗中,以便同時追蹤數個即時資料來源。
建立基本 (單一執行個體) 工具視窗
使用 VSIX 範本建立名為 MultiInstanceToolWindow 的專案,並新增名為 MIToolWindow 的自訂工具視窗項目範本。
注意
如需使用工具視窗建立延伸模組的詳細資訊,請參閱使用工具視窗建立延伸模組。
為工具視窗建立多執行個體
開啟 MIToolWindowPackage.cs 檔案並尋找
ProvideToolWindow
屬性 和MultiInstances=true
參數,如下列範例所示:[PackageRegistration(UseManagedResourcesOnly = true)] [InstalledProductRegistration("#110", "#112", "1.0", IconResourceID = 400)] // Info on this package for Help/About [ProvideMenuResource("Menus.ctmenu", 1)] [ProvideToolWindow(typeof(MultiInstanceToolWindow.MIToolWindow), MultiInstances = true)] [Guid(MIToolWindowPackage.PackageGuidString)] public sealed class MIToolWindowPackage : Package {. . .}
在 MIToolWindowCommand.cs 檔案中,尋找
ShowToolWindos()
方法。 在此方法中,呼叫 FindToolWindow 方法並將其create
旗標設定為false
,以便逐一查看現有的工具視窗執行個體,直到找到可用的id
為止。若要建立工具視窗執行個體,請呼叫 FindToolWindow 方法,並將其
id
設定為可用的值,將其create
旗標設定為true
。根據預設,FindToolWindow 方法的
id
參數值為0
。 此值會建立單一執行個體工具視窗。 若要裝載多個執行個體,每個執行個體都必須有自己的唯一id
。在工具視窗執行個體的 Frame 屬性所傳回的 IVsWindowFrame 物件上呼叫 Show 方法。
根據預設,工具視窗專案範本所建立的
ShowToolWindow
方法會建立單一執行個體工具視窗。 下列範例說明如何修改ShowToolWindow
方法以建立多個執行個體。private void ShowToolWindow(object sender, EventArgs e) { for (int i = 0; i < 10; i++) { ToolWindowPane window = this.package.FindToolWindow(typeof(MIToolWindow), i, false); if (window == null) { // Create the window with the first free ID. window = (ToolWindowPane)this.package.FindToolWindow(typeof(MIToolWindow), i, true); if ((null == window) || (null == window.Frame)) { throw new NotSupportedException("Cannot create tool window"); } IVsWindowFrame windowFrame = (IVsWindowFrame)window.Frame; Microsoft.VisualStudio.ErrorHandler.ThrowOnFailure(windowFrame.Show()); break; } } }