다음을 통해 공유


방법: 다중 도구 창을 만듭니다.

여러 인스턴스를시작됨동시에 될 수 있도록프로그램도구 창수 있습니다. 기본적으로 하나의 인스턴스를시작됨도구 창을 가질 수 있습니다.

도구 창여러 인스턴스 사용 하 여 여러 관련된 정보 소스를 동시에 표시할 수 있습니다. 멀티-선을 넣을 수 있습니다 예를 들어,TextBox 몇 가지코딩하다조각을 프로그래밍 세션 동안 동시에 사용할 수 있도록 다중 인스턴스도구 창에서 제어 됩니다. 예도 넣을 수 있습니다의 DataGrid 컨트롤 및 다중도구 창드롭다운 목록 상자여러 실시간 데이터 소스의 동시에 추적할 수 있도록 합니다.

만들다에 다중도구 창

  1. 도구 창Visual Studio패키지 템플릿을 사용 하 여 만듭니다. 자세한 내용은 방법: 도구 창 만들기를 참조하십시오.

  2. 패키지파일을 엽니다 (프로젝트 이름Package.cs 또는 프로젝트 이름Package.vb).

  3. 클래스정의 바로 위에 찾기는 ProvideToolWindow특성및 MultiInstances=true매개 변수다음 예제와 같이.

    [ProvideToolWindow(typeof(MyToolWindow), MultiInstances = true)]
    

    함께도구 창의 여러 인스턴스를 활성화 레지스트리항목을 만듭니다.

  4. 호출의 FindToolWindow메서드및 집합 그 create플래그를 지정하다를 false 이 수 있도록 기존도구 창인스턴스를 통해반복하다될 때까지 사용 가능한 id 찾을 수 있습니다.

  5. 만들다에도구 창인스턴스를 호출 하는 FindToolWindow메서드및 집합의 id 를 사용할 수 있는 값 및 해당 create플래그를 지정하다를 true.

    기본적으로 값은의 id매개 변수는 FindToolWindow메서드는 0. 이 단일 인스턴스도구 창있습니다. 모든 인스턴스에 합니다 두 개 이상의 인스턴스는 고유한 있어야 합니다 id.

  6. 호출의 Show메서드는 IVsWindowFrame반환 하는개체는 Frame도구 창인스턴스속성.

    이도구 창표시 됩니다.

예제

기본적으로 ShowToolWindow패키지템플릿로 만든메서드단일 인스턴스도구 창을 지원 합니다. 다음 예제를 수정 하는 방법을 보여 줍니다 있는 ShowToolWindow메서드여러 인스턴스를 지원 합니다.

private void ShowToolWindow(object sender, EventArgs e)
{
    for (int i = 0; ; i++)
    {
        // Find existing windows. 
        var currentWindow = this.FindToolWindow(
            typeof(MyToolWindow), i, false);
        if (currentWindow == null)
        {
            // Create the window with the first free ID. 
            var window = (ToolWindowPane)this.CreateToolWindow(typeof(MyToolWindow), i);

            if ((null == window) || (null == window.Frame))
            {
                throw new NotSupportedException(
                    Resources.CanNotCreateWindow);
            }
            IVsWindowFrame windowFrame = (IVsWindowFrame)window.Frame;

            // Display the window.
            Microsoft.VisualStudio.ErrorHandler.ThrowOnFailure(
                windowFrame.Show());
            break;
        }
    }
}

참고 항목

작업

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

참조

FindToolWindow

기타 리소스

도구 창