共用方式為


藉由建立 [選項] 頁管理套件架構類別

在Visual Studio受管理的封裝架構類別衍生自DialogPage延伸Visual Studio IDE 加上選項下的網頁工具功能表。

物件實作給定工具選項頁面是依特定的 VSPackages 相關聯ProvideOptionPageAttribute物件。

因為環境會實作特定的物件具現化工具選項網頁時,ide 就會顯示該特定的頁面:

  • A 工具選項應該執行頁面,在其本身的物件,而非上實作 VSPackage 的物件。

  • 物件不能實作多個工具選項的網頁。

工具選項頁提供者註冊

VSPackage 支援使用者設定透過工具選項頁面表示的物件,提供這些工具選項頁面所套用的例項ProvideOptionPageAttribute套用至Package實作。

必須有一個執行個體的ProvideOptionPageAttribute的每個DialogPage-衍生型別實作工具選項頁面。

每個執行個體ProvideOptionPageAttribute實作的型別會使用工具選項一頁,包含使用的類別和子類別,用來識別的字串工具選項頁,以及註冊型別提供的資源資訊工具選項頁面。 如需詳細資訊,請參閱 使用 [選項] 頁

保存的工具選項頁面狀態

如果工具選項 頁面實作使用權係搭配自動化支援已啟用,IDE 會保存網頁狀態,以及其他所有的 工具選項的網頁。 如需詳細資訊,請參閱 使用 [選項] 頁

VSPackage 可以管理它自己的持續性,藉由使用ProvideProfileAttribute。 應該使用一部或持續性的其他方法。

實作的 DialogPage 類別

物件提供的 VSPackage 實作DialogPage-衍生型別可以利用下列繼承的功能:

物件實作的最低需求工具選項頁面使用DialogPage是加入減少公用屬性。

如果正確地登錄中的類別,為工具選項 頁提供者,則可公開屬性為 [可用的 選項 區段中的 工具格式的屬性方格中的功能表。

可覆寫這些預設功能。 例如,若要建立更複雜的使用者介面要求只能覆寫的預設實作Window

範例

接下來是簡單的"hello 世界 」 實作的 [選項] 頁面。 將下列程式碼加入至預設的專案建立 Visual Studio 的封裝範本,內含的功能表命令選取選項將會適當地示範選項] 頁面的功能。

描述

下列類別會定義最小的"hello 世界 」 選項頁面。 當開啟時,使用者可以設定大眾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 組件建立選項頁

其他資源

使用者設定和選項

[選項] 頁