Optionsseiten mithilfe der Klassen des verwalteten Paketframeworks erstellen
Im Visual Studio verwalteten Paketframework erweitern Klassen, die von DialogPage abgeleitet sind, das Visual Studio IDE, indem sie Optionen Seiten mit dem Extras Menü hinzufügen.
Ein Objekt, das eine angegebene Extras/Optionen Seite VSPackages mit bestimmtem implementiert, wird durch das ProvideOptionPageAttribute-Objekt zugeordnet.
Da die Umgebung das Objekt instanziiert, das eine bestimmte Extras/Optionen Seite implementiert, wenn diese bestimmte Seite von der IDE angezeigt wird:
Eine Extras/Optionen Seite sollte in einem eigenen Objekt und nicht auf dem Objekt implementiert werden, das ein VSPackage implementieren.
Ein Objekt kann mehrere Extras/Optionen Seiten nicht implementieren.
Als Seite Optionen im Menü Extrasen-Anbieter registrieren
VSPackage, mit dem Benutzer unterstützt, Extras/Optionen Seiten durch Konfiguration, die Objekte angibt, die diese Extras/Optionen Seiten aus dem Anwenden von Instanzen von ProvideOptionPageAttribute angewendeten bereitstellen zu Package die Implementierung.
Es muss eine Instanz von ProvideOptionPageAttribute für jedes DialogPageabgeleiteten Typ sein, der eine Extras/Optionen Seite implementiert.
Jede Instanz von ProvideOptionPageAttribute verwendet den Typ, der die Extras/Optionen Seite Zeichenfolgen implementiert, die die Kategorie und die Unterkategorie enthalten, die verwendet werden, um eine Extras/Optionen Seite zu identifizieren, und die Ressourceninformationen, um den Typ als Bereitstellen einer Extras/Optionen Seite zu registrieren. Weitere Informationen finden Sie unter Verwenden der Optionsseiten.
Seite Optionen im Menü Extrasen-Zustand beibehalten
Wenn eine Extras/Optionen Implementierung der Seiten mit aktivierter Automatisierungsunterstützung registriert wird, behält die IDE den Zustand der Seite zusammen mit allen anderen Extras/Optionen Seiten beibehalten. Weitere Informationen finden Sie unter Verwenden der Optionsseiten.
VSPackage kann seine eigene Dauerhaftigkeit verwalten, indem ProvideProfileAttributeverwendet. Nur eine oder andere Methode dem permanenten Speicher verwendet werden soll.
Implementieren DialogPage-Klasse
Ein Objekt mit einer Implementierung von VSPackages Bereitstellen DialogPageabgeleiteten Typ kann folgende geerbte Funktionen nutzen:
Ein standardmäßige Fenster der Benutzeroberfläche.
Verfügbares ein Mechanismus zur Beibehaltung des standardmäßigen, wenn ProvideProfileAttribute auf die Klasse angewendet wird, oder wenn die SupportsProfiles-Eigenschaft auf true für ProvideOptionPageAttribute festgelegt wird, die auf die Klasse angewendet wird.
Automatisierungsunterstützung.
Die Mindestanforderung für ein Objekt, das eine Extras/Optionen Seite mithilfe DialogPage implementiert, ist das Hinzufügen der öffentlichen Eigenschaften.
Wenn die Klasse, die als richtig Extras/Optionen für Seiten, dessen öffentliche Eigenschaften registriert wird, auf dem Optionen-Abschnitt des Extras Menüs in Form eines Eigenschaftenrasters verfügbar sind.
Diese Standardfunktionen können überschrieben werden. Zum Beispiel erfordert eine ausgereiftere Benutzeroberfläche zum Erstellen der Standardimplementierung von Windownur überschreiben.
Beispiel
Was folgt, ist eine einfache „Hello World“ - Implementierung einer Optionsseite. Die folgenden Code zu einem Projekt hinzufügen, das von der Visual Studio-Paket-Vorlage mit der ausgewählten Menübefehl Option erstellt wird, veranschaulicht. Funktionen hinreichend Optionsseiten
Beschreibung
Die folgende Klasse definiert eine minimale „Hello World“ Optionsseite. Wenn er geöffnet ist, kann der Benutzer die öffentliche HelloWorld-Eigenschaft in einem Eigenschaftenraster ändern.
Code
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; }
}
}
}
Beschreibung
Durch Anwenden des Attributs folgenden Klasse stellt die Optionsseite zur Paket bei jedem Paket bereit. Die Zahlen sind beliebige Ressource ID für die Kategorie und die Seite am Ende der boolesche Wert und gibt an, ob die Seite Automatisierung unterstützt.
Code
<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)]
Beschreibung
Der folgende Ereignishandler wird ein Ergebnis je nach Wert des Eigenschaftensatzes in der Optionsseite. Es wird die GetDialogPage-Methode mit dem Ergebnis benutzerdefinierter Optionsseiten umwandelte explizit in den Typ aus, um die Eigenschaften zuzugreifen, die von der Seite verfügbar gemacht werden.
Im Falle eines Projekts von der Vorlage Paket, das generiert wird, rufen Sie diese Funktion von der MenuItemCallback-Funktion auf, um diese mit dem Standardbefehl anzufügen, der dem Extras Menü hinzugefügt wird.
Code
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.");
}
Siehe auch
Konzepte
Automatisierungs-Unterstützung für Optionsseiten
Registrieren benutzerdefinierter Optionsseiten
Optionsseiten erstellen durch Automatisierung
Optionsseiten erstellen Sie mithilfe von Interop-Assemblys