다음을 통해 공유


생성 옵션 페이지를 사용 하 여 프레임 워크 클래스 패키지 관리

에 Visual Studio 패키지 관리 되는 프레임 워크 클래스에서 파생 DialogPage 확장의 Visual Studio IDE를 추가 하 여 옵션 에서 페이지는 도구 메뉴.

구현 하는 개체는 지정 된 도구 옵션 페이지 특정 Vspackages가 연결 되는 ProvideOptionPageAttribute 개체.

환경의 특정 구현 하는 개체를 인스턴스화하고 때문에 도구 옵션 IDE에서 특정 페이지를 표시할 때 페이지:

  • A 도구 옵션 페이지와 있는 VSPackage 구현 개체가 아닌 고유한 개체에서 구현 해야 합니다.

  • 여러 개체를 구현할 수 없습니다 도구 옵션 페이지입니다.

도구 옵션 페이지 공급자 등록

VSPackage 지원 사용자 구성을 통해 도구 옵션 페이지가 제공 하는 개체를 나타내는 도구 옵션 인스턴스를 적용 하 여 페이지 ProvideOptionPageAttribute 적용은 Package 구현 합니다.

하나만 있어야 ProvideOptionPageAttribute 에 대 한 모든 DialogPage-구현 하는 형식 파생 된 도구 옵션 페이지.

각 인스턴스를 ProvideOptionPageAttribute 를 구현 하는 형식을 사용 하는 도구 옵션 페이지, 범주 및 하위 범주를 식별 하는 데 사용 되는 포함 된 문자열을 도구 옵션 페이지 및 자원 정보를 제공 하는 형식을 등록 하는 도구 옵션 페이지. 자세한 내용은 옵션 페이지를 사용 하 여를 참조하십시오.

도구 옵션 페이지 상태 유지

경우는 도구 옵션 페이지 구현을 사용할 수 있는 자동화 지원으로 등록 되어, IDE와 다른 모든 페이지의 상태 유지 도구 옵션 페이지입니다. 자세한 내용은 옵션 페이지를 사용 하 여를 참조하십시오.

사용 하 여 자체 지 속성 있는 Vspackage를 관리할 수 있습니다 ProvideProfileAttribute. 하나 나는 또 다른 방법은 지 속성을 사용 합니다.

DialogPage 클래스를 구현합니다.

Vspackage의 구현을 제공 하는 개체는 DialogPage-파생된 형식의 상속 된 다음과 같은 기능을 수행할 수:

  • 기본 사용자 인터페이스 창입니다.

  • A 기본 지 속성 메커니즘을 사용할 수 있는 두 가지 경우 ProvideProfileAttribute 클래스에 적용 됩니다 경우는 SupportsProfiles 속성을 설정 true 에 대 한는 ProvideOptionPageAttribute 클래스에 적용 됩니다.

  • 자동화를 지원 합니다.

구현 하는 개체에 대 한 최소 요구 사항은 도구 옵션 를 사용 하 여 페이지 DialogPage 추가 public 속성입니다.

클래스가 정상적으로 등록 하는 경우는 도구 옵션 공용 속성에 사용할 수 있는 다음 공급자 페이지는 옵션 섹션의 도구 메뉴 속성 모눈의 형태로.

이러한 모든 기본 기능을 재정의할 수 있습니다. 예를 들어, 좀 더 복잡 한 사용자 인터페이스만의 기본 구현을 재정의 해야 Window.

예제

뒤에 오는 옵션 페이지의 "안녕 세계" 간단한 구현입니다. Visual Studio 패키지 템플릿으로 만든 기본 프로젝트에 다음 코드를 추가 메뉴 명령 을 옵션을 선택 하 게 적절 하 게 옵션 페이지 기능 설명 합니다.

설명

다음 클래스는 최소한의 "안녕 세계" 옵션 페이지를 정의합니다. 열 때 사용자가 공개를 설정할 수 있습니다 HelloWorld 속성이 속성 표에 있습니다.

코드

Imports System
Imports Microsoft.VisualStudio.Shell

Namespace Company.UIUserSettingsToolsOptionsPages
    Class HelloWorldOptions
        Inherits DialogPage
        Private m_helloWorld As Boolean = True 
        Public Property HelloWorld() As Boolean 
            Get 
                Return m_helloWorld
            End Get 
            Set(ByVal value As Boolean)
                m_helloWorld = value
            End Set 
        End Property 
    End Class 
End Namespace
using System;
using Microsoft.VisualStudio.Shell;

namespace Company.UIUserSettingsToolsOptionsPages
{
    class HelloWorldOptions : DialogPage
    {
        bool helloWorld = true;
        public bool HelloWorld
        {
            get { return helloWorld; }
            set { helloWorld = value; }
        }
    }
}

설명

패키지 클래스에 다음 특성을 적용 합니다. 패키지를 로드할 때 페이지 옵션을 사용할 수 있습니다. 범주 및 해당 페이지에 대해 임의의 리소스 Id 번호는 및 부울 값의 끝에 페이지에서 자동화를 지원 하는지 여부를 지정 합니다.

코드

<PackageRegistration(UseManagedResourcesOnly:=True)> _
<DefaultRegistryRoot("Software\Microsoft\VisualStudio\9.0")> _
<InstalledProductRegistration(False, "#110", "#112", "1.0", IconResourceID:=400)> _
<ProvideLoadKey("Standard", "1.0", "Package Name", "Company", 1)> _
<ProvideMenuResource(1000, 1)> _
<Guid(GuidList.guidPkgString)> _
<ProvideOptionPage(GetType(HelloWorldOptions), "Hello World Category", "Hello World Page", 1000, 1001, False)> _
Public NotInheritable Class UIUserSettingsToolsOptionsPagesPackage
    Inherits Package
[ProvideOptionPage(typeof(HelloWorldOptions), 
    "Hello World Category", "Hello World Page", 
    1000, 1001, false)]

설명

다음 이벤트 처리기 설정 옵션 페이지에서 속성의 값에 따라 결과 표시 합니다. 이 사용 하 여 GetDialogPage 메서드의 결과를 명시적으로 캐스팅 하는 페이지에 의해 노출 되는 속성에 액세스 하는 사용자 지정 옵션 페이지 형식으로 합니다.

패키지 템플릿에 의해 생성 되는 프로젝트의 경우이 함수를 호출 하 여 MenuItemCallback 기본 명령에 연결 하는 함수를 추가 하는 도구 메뉴.

코드

Private Sub ShowHelloWorld(ByVal sender As Object, ByVal e As EventArgs)
    Dim hw = TryCast(GetDialogPage(GetType(HelloWorldOptions)), HelloWorldOptions)
    If hw.HelloWorld = True Then
        MessageBox.Show("Hello World!")
    Else
        MessageBox.Show("Goodbye.")
    End If 
End Sub
private void ShowHelloWorld(object sender, EventArgs e)
{
    var hw = GetDialogPage(typeof(HelloWorldOptions)) 
        as HelloWorldOptions;
    if (hw.HelloWorld == true)
    {
        MessageBox.Show("Hello World!");
    }
    else MessageBox.Show("Goodbye.");
}

참고 항목

개념

자동화 지원 옵션 페이지에 대 한

사용자 지정 옵션 페이지 등록

옵션 페이지를 사용 하 여

자동화를 사용 하 여 옵션 페이지를 만들기

Interop 어셈블리를 사용 하 여 옵션 페이지를 만들기

기타 리소스

사용자 설정 및 옵션

옵션 페이지