共用方式為


ToolWindow 類別

由衍生類別覆寫時,代表工具視窗,此工具視窗位在針對網域特定語言產生的設計工具中。

此應用程式開發介面不符合 CLS 標準。 

繼承階層架構

System.Object
  Microsoft.VisualStudio.Shell.WindowPane
    Microsoft.VisualStudio.Modeling.Shell.ModelingWindowPane
      Microsoft.VisualStudio.Modeling.Shell.ToolWindow
        Microsoft.VisualStudio.Modeling.Shell.ModelExplorerToolWindow

命名空間:  Microsoft.VisualStudio.Modeling.Shell
組件:  Microsoft.VisualStudio.Modeling.Sdk.Shell.12.0 (在 Microsoft.VisualStudio.Modeling.Sdk.Shell.12.0.dll 中)

語法

'宣告
<CLSCompliantAttribute(False)> _
Public MustInherit Class ToolWindow _
    Inherits ModelingWindowPane
[CLSCompliantAttribute(false)]
public abstract class ToolWindow : ModelingWindowPane

ToolWindow 類型會公開下列成員。

建構函式

  名稱 描述
受保護的方法 ToolWindow 初始化 ToolWindow 類別的新執行個體。

回頁首

屬性

  名稱 描述
公用屬性 ActiveInPlaceEditWindow 取得和設定就地編輯的使用中視窗。 (繼承自 ModelingWindowPane)。
受保護的屬性 BitmapIndex 在衍生類別中覆寫時,取得工具視窗名稱旁所出現的點陣圖的索引。
受保護的屬性 BitmapResource 在衍生類別中覆寫時,取得工具視窗名稱旁所出現的點陣圖的資源 ID。
公用屬性 Content (繼承自 WindowPane)。
公用屬性 DocData 取得在記憶體中的文件。
受保護的屬性 EnableUndo 取得工具視窗,並啟用 [復原] 命令。
公用屬性 Frame 取得對應至這個視窗的 IVsWindowFrame。 (繼承自 ModelingWindowPane)。
受保護的屬性 HasSelectableObjects 取得工具視窗,而且如果未載入文件則停用 [選取物件] 命令。 (覆寫 ModelingWindowPane.HasSelectableObjects。)
受保護的屬性 HasToolBar 取得工具視窗,並確認它是否應該有工具列。
受保護的屬性 HelpService 取得說明服務。 (繼承自 ModelingWindowPane)。
受保護的屬性 InitializationMode (繼承自 WindowPane)。
公用屬性 MenuService 取得功能表命令服務。 (繼承自 ModelingWindowPane)。
公用屬性 PrimarySelection 取得在視窗窗格中選取的主要項目。 (繼承自 ModelingWindowPane)。
受保護的屬性 SelectedElements 取得在視窗窗格中選取的項目。 (繼承自 ModelingWindowPane)。
公用屬性 SelectionCount 取得在視窗窗格中選取的項目數目。 (繼承自 ModelingWindowPane)。
受保護的屬性 SelectionHelpService 取得選取範圍說明服務。 (繼承自 ModelingWindowPane)。
受保護的屬性 ServiceProvider 取得這個視窗窗格的本機服務提供者。 (繼承自 ModelingWindowPane)。
受保護的屬性 ToolBarHost 取得 IVsToolWindowToolbarHost 介面,用來決定工具視窗中工具列的顯示方式。
受保護的屬性 ToolWindowFont 取得要用於工具視窗的字型。
公用屬性 Window (繼承自 WindowPane)。
公用屬性 WindowTitle 取得工具視窗的標題。

回頁首

方法

  名稱 描述
受保護的方法 CommitPendingEditForCommand 在衍生類別中實作時,指定是否應該在執行命令之前認可暫止的編輯。 (繼承自 ModelingWindowPane)。
受保護的方法 CountAllObjects 取得視窗窗格中的項目數目。 (繼承自 ModelingWindowPane)。
公用方法 CountObjects 計算視窗窗格或目前選取範圍中的項目數目。 (繼承自 ModelingWindowPane)。
受保護的方法 CountSelectedObjects 取得目前選取範圍中的項目數目。 (繼承自 ModelingWindowPane)。
公用方法 Dispose() (繼承自 WindowPane)。
受保護的方法 Dispose(Boolean) 釋放 ToolWindow 所使用的 Unmanaged 資源,並選擇性釋放 Managed 資源。 (覆寫 ModelingWindowPane.Dispose(Boolean)。)
受保護的方法 DoSelectObjects 在衍生類別中實作時,在視窗窗格中選取項目。 (繼承自 ModelingWindowPane)。
公用方法 Equals 判斷指定的物件是否等於目前物件。 (繼承自 Object)。
受保護的方法 Finalize 允許物件在記憶體回收進行回收之前,嘗試釋放資源並執行其他清除作業。 (繼承自 Object)。
受保護的方法 GetAllObjects 取得視窗窗格中的所有項目。 (繼承自 ModelingWindowPane)。
公用方法 GetComponentSelected 指定是否選取指定的元件。 (繼承自 ModelingWindowPane)。
公用方法 GetContainerSelected 指定是否選取指定的容器。 (繼承自 ModelingWindowPane)。
公用方法 GetHashCode 做為預設雜湊函式。 (繼承自 Object)。
公用方法 GetObjects 取得目前選取的項目或可在視窗窗格中選取的項目。 (繼承自 ModelingWindowPane)。
公用方法 GetSelectedComponents 取得在視窗窗格中選取的元件。 (繼承自 ModelingWindowPane)。
受保護的方法 GetSelectedObjects 取得在視窗窗格中選取的項目。 (繼承自 ModelingWindowPane)。
受保護的方法 GetService 取得所指定型別的服務。覆寫這個方法,以傳回自訂的功能表命令服務 (繼承自 ModelingWindowPane)。
公用方法 GetSite 取得以 SetSite 設定的網站。 (繼承自 ModelingWindowPane)。
公用方法 GetType 取得目前執行個體的 Type。 (繼承自 Object)。
公用方法 Hide 隱藏視窗窗格。 (繼承自 ModelingWindowPane)。
受保護的方法 Initialize 初始化 ToolWindow 類別的新執行個體。 (覆寫 WindowPane.Initialize()。)
公用方法 LoadUIState (繼承自 WindowPane)。
受保護的方法 MemberwiseClone 建立目前 Object 的淺層複本 (Shallow Copy)。 (繼承自 Object)。
受保護的方法 OnAfterToolWindowCreate 建立後初始化。
受保護的方法 OnClose 關閉視窗窗格時,從捷徑功能表選項中移除視窗窗格物件。 (繼承自 ModelingWindowPane)。
受保護的方法 OnCreate 建立工具視窗。 (覆寫 WindowPane.OnCreate()。)
受保護的方法 OnDocumentWindowChanged 如果使用者在文件視窗中進行變更,則告知衍生類別。
受保護的方法 OnSelectionChanged 在選取範圍變更之後,會告知事件接聽程式。 (繼承自 ModelingWindowPane)。
受保護的方法 OnSelectionChanging 在選取範圍變更之前,會告知事件接聽程式。 (繼承自 ModelingWindowPane)。
受保護的方法 OnToolWindowCreate 接聽文件視窗中的框架變更
受保護的方法 PreProcessMessage 處理視窗訊息。 (繼承自 ModelingWindowPane)。
公用方法 SaveUIState (繼承自 WindowPane)。
公用方法 SelectObjects 選取視窗窗格中的項目。 (繼承自 ModelingWindowPane)。
公用方法 SetSelectedComponents(ICollection) 將指定的元件加入至選取項目容器,並向 Shell 發出有關選取範圍變更的通知。 (繼承自 ModelingWindowPane)。
公用方法 SetSelectedComponents(ICollection, SelectionTypes) 目前未實作。 (繼承自 ModelingWindowPane)。
公用方法 SetSite 初始化環境中的視窗窗格。 (繼承自 ModelingWindowPane)。
公用方法 Show 顯示視窗窗格,將其帶到最上層,並使其成為使用中視窗。 (繼承自 ModelingWindowPane)。
公用方法 ShowNoActivate 顯示視窗窗格,將其帶到最上層,但不設定其為使用中視窗。 (繼承自 ModelingWindowPane)。
公用方法 ToString 傳回表示目前物件的字串。 (繼承自 Object)。

回頁首

事件

  名稱 描述
公用事件 SelectionChanged 在視窗窗格中的選取範圍已變更之後引發。 (繼承自 ModelingWindowPane)。
公用事件 SelectionChanging 在視窗窗格中的選取範圍變更之前引發。 (繼承自 ModelingWindowPane)。

回頁首

明確介面實作

  名稱 描述
明確介面實作私用方法 IVsWindowPane.ClosePane 已過時。 (繼承自 WindowPane)。
明確介面實作私用方法 IVsUIElementPane.CloseUIElementPane (繼承自 WindowPane)。
明確介面實作私用方法 IVsWindowPane.CreatePaneWindow 已過時。 (繼承自 WindowPane)。
明確介面實作私用方法 IVsUIElementPane.CreateUIElementPane (繼承自 WindowPane)。
明確介面實作私用方法 IOleCommandTarget.Exec (繼承自 WindowPane)。
明確介面實作私用方法 IVsWindowPane.GetDefaultSize 已過時。 (繼承自 WindowPane)。
明確介面實作私用方法 IVsUIElementPane.GetDefaultUIElementSize (繼承自 WindowPane)。
明確介面實作私用方法 IServiceProvider.GetService (繼承自 WindowPane)。
明確介面實作私用方法 IVsUIElementPane.LoadUIElementState (繼承自 WindowPane)。
明確介面實作私用方法 IVsWindowPane.LoadViewState 已過時。 (繼承自 WindowPane)。
明確介面實作私用方法 IOleCommandTarget.QueryStatus (繼承自 WindowPane)。
明確介面實作私用方法 IVsUIElementPane.SaveUIElementState (繼承自 WindowPane)。
明確介面實作私用方法 IVsWindowPane.SaveViewState 已過時。 (繼承自 WindowPane)。
明確介面實作私用方法 IVsWindowPane.SetSite 已過時。 (繼承自 WindowPane)。
明確介面實作私用方法 IVsUIElementPane.SetUIElementSite (繼承自 WindowPane)。
明確介面實作私用方法 IVsWindowPane.TranslateAccelerator 已過時。 (繼承自 WindowPane)。
明確介面實作私用方法 IVsUIElementPane.TranslateUIElementAccelerator (繼承自 WindowPane)。

回頁首

備註

將工具視窗至產生的設計工具之前,您必須登錄視窗。 如需詳細資訊,請參閱ModelingPackage

範例

下列範例會將工具視窗名為 [自訂工具視窗 ] 至名為 RegisterTools 的網域特定語言專案。 當您開啟在產生的設計工具中的專案,這個視窗的選項在 [方案總管] 旁邊。 當您按一下這個選項時,將 [這是自訂工具視窗] 的標籤在工具視窗中出現。

這個程式碼會註冊工具視窗:

using VSShellInterop = Microsoft.VisualStudio.Shell.Interop;
using VSShell = Microsoft.VisualStudio.Shell;
using DslShell = Microsoft.VisualStudio.Modeling.Shell;
using DslDesign = Microsoft.VisualStudio.Modeling.Design;
using VSTextTemplatingHost = Microsoft.VisualStudio.TextTemplating.VSHost;

namespace MS.RegisterTools.DslPackage
{
    [VSShell::ProvideToolWindowVisibility(typeof(CustomToolWindow), 
              Constants.RegisterToolsEditorFactoryId)]
    [VSShell::ProvideToolWindow(typeof(CustomToolWindow), 
              MultiInstances = false, 
              Style = VSShell::VsDockStyle.Tabbed, 
              Orientation = VSShell::ToolWindowOrientation.Right, 
              Window = "{3AE79031-E1BC-11D0-8F78-00A0C9110057}")]

    internal partial class RegisterToolsPackage
    {
        //Initializes the base class for the package
        protected override void Initialize()
        {
            base.Initialize();

            //Registers the custom tool window
            this.AddToolWindow(typeof(CustomToolWindow));
        }
    }
}

這個程式碼定義工具視窗:

using System;
using System.Windows.Forms;
using VSShellInterop = Microsoft.VisualStudio.Shell.Interop;
using VSShell = Microsoft.VisualStudio.Shell;
using DslShell = Microsoft.VisualStudio.Modeling.Shell;
using DslDesign = Microsoft.VisualStudio.Modeling.Design;
using VSTextTemplatingHost = Microsoft.VisualStudio.TextTemplating.VSHost;

namespace MS.RegisterTools.DslPackage
{

    //Creates a tool window and gives it a title, icon, and label
    internal class CustomToolWindow : DslShell.ToolWindow
    {

        //defines a label
  private Label myLabel;
        
        //creates the tool window
  public CustomToolWindow(IServiceProvider serviceProvider) : base(serviceProvider)
  { 
  }

        //gets the icon for the tool window
        protected override int BitmapResource
        {
            get { return 104; }
        }

        //gets the index for the icon
        protected override int BitmapIndex
        {
            get { return 0; }
        }

        //gets the name of the tool window
        public override string WindowTitle
        {
            get { return "Custom Window"; }
        }

        //sets up a label
  protected override void OnToolWindowCreate()
  {
      this.myLabel = new Label();
this.myLabel.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.myLabel.Text = "This is the custom tool window";
   }

        //puts a label on the tool window
  public override System.Windows.Forms.IWin32Window Window
  {
       get { return this.myLabel; }
  }
    }
}

執行緒安全

這個類型的任何 Public static (在 Visual Basic 中為 Shared) 成員都是安全執行緒。不保證任何執行個體成員是安全執行緒。

請參閱

參考

Microsoft.VisualStudio.Modeling.Shell 命名空間