다음을 통해 공유


방법: 프로그래밍 방식으로 도구 창 열기

도구 창 메뉴에서 명령을 클릭 하거나에 해당 하는 바로 가기 키 일반적으로 열립니다. 그러나 명령 처리기와 같이 도구 창을 프로그래밍 방식으로 열 수 있을 수 있습니다.

제공 관리 Vspackage에서 도구 창을 열려면 사용 FindToolWindow. 다른 Vspackage에서 도구 창을 열려면 사용 FindToolWindow. 두 경우 모두 도구 창을 만들 필요 합니다.

다음 코드는 C# Reference.ToolWindow 샘플에서 가져온 것입니다.

도구 창을 프로그래밍 방식으로 열 수

  1. 도구 창의 창, 프레임 및 해당 구현 Vspackage를 만듭니다. 자세한 내용은 방법: 도구 창 만들기를 참조하십시오.

  2. 도구 창에 등록 Visual Studio 추가 하 여 해당 ProvideToolWindowAttribute 제공 Vspackage를 합니다.

    <PackageRegistration(UseManagedResourcesOnly:=True), _
    InstalledProductRegistration("#110", "#112", "1.0", IconResourceID:=400), _
    ProvideMenuResource(1000, 1), _
    ProvideToolWindow(GetType(MyToolWindow), Style:=VsDockStyle.Tabbed, Window:="3ae79031-e1bc-11d0-8f78-00a0c9110057"), _
    DefaultRegistryRoot("Software\Microsoft\VisualStudio\8.0Exp"), _
    Guid("01069CDD-95CE-4620-AC21-DDFF6C57F012")> _
    Public NotInheritable Class PackageToolWindow
        Inherits Package
    
    [ProvideToolWindow(typeof(MyToolWindow), Style = VsDockStyle.Tabbed, Window = "3ae79031-e1bc-11d0-8f78-00a0c9110057")]
    [ProvideMenuResource(1000, 1)]
    [DefaultRegistryRoot(@"Software\Microsoft\VisualStudio\8.0Exp")]
    [PackageRegistration(UseManagedResourcesOnly = true)]
    [Guid("01069CDD-95CE-4620-AC21-DDFF6C57F012")]
    public sealed class PackageToolWindow : Package
    

    도구 창으로 열 PersistedWindowPane 도킹 하려면이 레지스터 솔루션 탐색기. 자세한 내용은 방법: 도구 창에 등록를 참조하십시오.

  3. 사용 FindToolWindow 도구 창을 찾을 수 또는 존재 하지 않는 경우 만들 수 있습니다.

    ' Get the (only) instance of this tool window. 
    ' The last flag is set to true so that if the tool window does not exists it will be created. 
    Dim window As ToolWindowPane = Me.FindToolWindow(GetType(MyToolWindow), 0, True)
    If (window Is Nothing) Or (window.Frame Is Nothing) Then 
        Throw New NotSupportedException(Resources.CanNotCreateWindow)
    End If
    
    // Get the (only) instance of this tool window. 
    // The last flag is set to true so that if the tool window does not exists it will be created.
    ToolWindowPane window = this.FindToolWindow(typeof(MyToolWindow), 0, true);
    if ((window == null) || (window.Frame == null))
    {
        throw new NotSupportedException(Resources.CanNotCreateWindow);
    }
    
  4. 도구 창에서 도구 창 프레임을 가져옵니다.

    Dim windowFrame As IVsWindowFrame = TryCast(window.Frame, IVsWindowFrame)
    
    IVsWindowFrame windowFrame = (IVsWindowFrame)window.Frame;
    
  5. 도구 창을 표시 합니다.

    ErrorHandler.ThrowOnFailure(windowFrame.Show())
    
    ErrorHandler.ThrowOnFailure(windowFrame.Show());
    

참고 항목

개념

VSPackage 필수 정보