Condividi tramite


Creando pagine di opzioni utilizzando le classi gestite del Framework del pacchetto

In Visual Studio il framework gestito del pacchetto, le classi derivate da DialogPage estendere l'ide di Visual Studio aggiungendo le pagine di opzioni nel menu di strumenti .

Un oggetto che implementa una determinata pagina di Opzione degli strumenti è associato a un Vspackage specifico dall'oggetto di ProvideOptionPageAttribute .

Poiché l'ambiente creare un'istanza dell'oggetto che implementa una determinata pagina di Opzioni degli strumenti quando quella determinata pagina viene visualizzata nell'IDE:

  • Una pagina di Opzione degli strumenti deve essere implementata nel relativo oggetto e non sull'oggetto che implementa un VSPackage.

  • Un oggetto non può implementare più pagine di Opzioni degli strumenti .

Registrando come provider della pagina delle Opzioni degli Strumenti

Una configurazione di supporto dell'utente di un VSPackage attraverso le pagine di Opzioni degli strumenti indica che gli oggetti che forniscono queste pagine di Opzioni degli strumenti applicando le istanze di ProvideOptionPageAttribute venivano applicate a Package l'implementazione.

È necessario che esista un'istanza di ProvideOptionPageAttribute per ogni DialogPage- tipo derivato che implementa una pagina di Opzioni degli strumenti .

Ogni istanza di ProvideOptionPageAttribute utilizza il tipo che implementa la pagina di Opzioni degli strumenti , stringhe contenenti la categoria e la sottocategoria utilizzate per identificare una pagina di Opzioni degli strumenti e le informazioni sulle risorse per registrare il tipo come fornire una pagina di Opzioni degli strumenti . Per ulteriori informazioni, vedere Utilizzando le pagine di opzioni.

Mantenere lo stato della pagina delle Opzioni degli Strumenti

Se l'implementazione della pagina di Opzioni degli strumenti registrata con il supporto di automazione abilitato, l'ide mantiene lo stato della pagina a tutte le altre pagine di Opzioni degli strumenti . Per ulteriori informazioni, vedere Utilizzando le pagine di opzioni.

Un VSPackage possibile gestire la propria persistenza utilizzando ProvideProfileAttribute. Il solo un o un altro metodo di persistenza deve essere utilizzato.

implementare la classe di DialogPage

Un oggetto che fornisce l'implementazione di un package VS di DialogPage- il tipo derivato è possibile usufruire delle funzionalità ereditate:

Il requisito minimo per un oggetto che implementa una pagina di Opzioni degli strumenti utilizzando DialogPage è l'aggiunta di proprietà pubbliche.

Se la classe correttamente registrata come provider della pagina di Opzioni degli strumenti , quindi le proprietà pubbliche è disponibile nella sezione di opzioni del menu di strumenti sotto forma di griglia delle proprietà.

Tutte queste funzionalità predefinite possono essere sottoposte a override. Ad esempio, creare un'interfaccia utente più specializzata richiede solo eseguire l'override dell'implementazione predefinita di Window.

Esempio

Che segue è “hello un'implementazione semplice world„ di una pagina di opzioni. Aggiungendo il seguente codice a un progetto predefinito creato dal modello del pacchetto di Visual Studio con l'opzione di comando di menu selezionata verrà data dimostrazione adeguatamente la funzionalità della pagina di opzione.

Descrizione

La classe definisce “hello una pagina minima di opzioni world„. Una volta aperto, l'utente può impostare la proprietà pubblica di HelloWorld in una griglia delle proprietà.

Codice

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; }
        }
    }
}

Descrizione

Applicare l'attributo seguente alla classe del pacchetto rende disponibile la pagina delle opzioni quando il pacchetto viene caricato. I numeri vengono risorsa arbitraria ID per la categoria e la pagina e il valore boolean alla fine di specificare se la pagina supporta l'automazione.

Codice

<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)]

Descrizione

Il gestore eventi visualizza un risultato in base al valore del working set di proprietà nella pagina delle opzioni. Utilizza il metodo di GetDialogPage con il risultato in modo esplicito esegue il cast nel tipo personalizzato della pagina delle opzioni per accedere alle proprietà esposte dalla pagina.

Nel caso di un progetto compilato dal modello del pacchetto, chiamare questa funzione dalla funzione di MenuItemCallback per associarlo al comando predefinito aggiunto al menu di strumenti .

Codice

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.");
}

Vedere anche

Concetti

Supporto di automazione per le pagine di opzioni

Per registrare pagine personalizzate di opzioni

Utilizzando le pagine di opzioni

Creando pagine di opzioni utilizzando l'automazione

Creando pagine di opzioni utilizzando gli assembly di interoperabilità

Altre risorse

Impostazioni utente e opzioni

pagine di opzioni