생성 옵션 페이지를 사용 하 여 프레임 워크 클래스 패키지 관리
에 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 어셈블리를 사용 하 여 옵션 페이지를 만들기