Options et les Pages d’OptionsOptions and Options Pages

En cliquant sur Options sur la outils menu s’ouvre le Options boîte de dialogue.Clicking Options on the Tools menu opens the Options dialog box. Les options de cette boîte de dialogue sont collectivement appelées pages d’options.The options in this dialog box are collectively referred to as options pages. Le contrôle d’arborescence dans le volet de navigation inclut les catégories d’options, et chaque catégorie comporte des pages d’options.The tree control in the navigation pane includes options categories, and every category has options pages. Lorsque vous sélectionnez une page, ses options s’affichent dans le volet droit.When you select a page, its options appear in the right pane. Ces pages vous permettent de modifier les valeurs des options qui déterminent l’état d’un VSPackage.These pages let you change the values of the options that determine the state of a VSPackage.

Prise en charge des Pages d’OptionsSupport for Options Pages

La Package classe fournit la prise en charge pour la création de pages d’options et les catégories d’options.The Package class provides support for creating options pages and options categories. La DialogPage classe implémente une page d’options.The DialogPage class implements an options page.

L’implémentation par défaut de DialogPage offre ses propriétés publiques à un utilisateur dans une grille générique de propriétés.The default implementation of DialogPage offers its public properties to a user in a generic grid of properties. Vous pouvez personnaliser ce comportement en substituant les différentes méthodes de la page pour créer une page d’options personnalisées qui possède sa propre interface utilisateur (IU).You can customize this behavior by overriding various methods on the page to create a custom options page that has its own user interface (UI). Pour plus d’informations, consultez création d’une Page d’Options.For more information, see Creating an Options Page.

Le DialogPage la classe implémente IProfileManager, qui fournit la persistance pour les pages d’options et paramètres utilisateur.The DialogPage class implements IProfileManager, which provides persistence for options pages and also for user settings. Les implémentations par défaut de la LoadSettingsFromStorage et SaveSettingsToStorage méthodes rendre persistantes les modifications de propriété dans une section de l’utilisateur du Registre si la propriété peut être convertie vers et à partir d’une chaîne.The default implementations of the LoadSettingsFromStorage and SaveSettingsToStorage methods persist property changes into a user section of the registry if the property can be converted to and from a string.

Chemin d’accès du Registre Options PageOptions Page Registry Path

Par défaut, le chemin d’accès du Registre des propriétés gérée par une page d’options est déterminée en combinant UserRegistryRoot, le mot DialogPage et le nom de type de la classe de la page options.By default, the registry path of the properties managed by an options page is determined by combining UserRegistryRoot, the word DialogPage, and the type name of the options page class. Par exemple, une classe de page d’options peut être définie comme suit.For example, an options page class might be defined as follows.

namespace Company.OptionsPage
{
    public class OptionsPageGeneral : DialogPage
    {
    }
}
Namespace Company.OptionsPage
    Public Class OptionsPageGeneral
        Inherits DialogPage
    End Class
End Namespace

Si la UserRegistryRoot est HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0Exp, puis les paires nom / valeur de propriété sont des sous-clés de HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0Exp\DialogPage\ Company.OptionsPage.OptionsPageGeneral.If the UserRegistryRoot is HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0Exp, then the property name and value pairs are subkeys of HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0Exp\DialogPage\Company.OptionsPage.OptionsPageGeneral.

Le chemin d’accès du Registre de la page d’options lui-même est déterminée en combinant ApplicationRegistryRoot, le mot, ToolsOptionsPages et les options de la page catégorie et le nom.The registry path of the options page itself is determined by combining ApplicationRegistryRoot, the word, ToolsOptionsPages, and the options page category and name. Par exemple, si la page d’options personnalisées a la catégorie, mon Option de Pages et le ApplicationRegistryRoot est HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0Exp, la page d’options a la clé de Registre HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ VisualStudio\8.0Exp\ToolsOptionsPages\My Option Pages\Custom.For example, if the Custom options page has the category, My Option Pages, and the ApplicationRegistryRoot is HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0Exp, then the options page has the registry key, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0Exp\ToolsOptionsPages\My Option Pages\Custom.

Attributs de Page Outils/Options et la dispositionTools/Options Page Attributes and Layout

Le ProvideOptionPageAttribute attribut détermine le regroupement de pages d’options personnalisées dans les catégories dans l’arborescence de navigation de la Options boîte de dialogue.The ProvideOptionPageAttribute attribute determines the grouping of custom options pages into categories in the navigation tree of the Options dialog box. Le ProvideOptionPageAttribute associe une page d’options le VSPackage qui fournit l’interface.The ProvideOptionPageAttribute attribute associates an options page with the VSPackage that provides the interface. Prenons le fragment de code suivant :Consider the following code fragment:

[ProvideOptionPage(typeof(OptionsPageGeneral),"My Option Pages", "General", 101, 106, true)]
[ProvideOptionPage(typeof(OptionsPageCustom), "My Option Pages", "Custom", 101, 107, true)]
[Guid("B0002DC2-56EE-4931-93F7-70D6E9863940")]
public class MyPackage : Package
<ProvideOptionPage(GetType(OptionsPageGeneral), "My Option Pages", "General", 101, 106, True),
 ProvideOptionPage(GetType(OptionsPageCustom), "My Option Pages", "Custom", 101, 107, True),
 Guid("B0002DC2-56EE-4931-93F7-70D6E9863940")>
Public Class MyPackage
    Inherits Package

Cela déclare que MyPackage fournit deux pages d’options, OptionsPageGeneral et OptionsPageCustom.This declares that MyPackage provides two options pages, OptionsPageGeneral and OptionsPageCustom. Dans le Options boîte de dialogue, les deux pages d’options s’affichent dans le mes Pages Option catégorie comme général et personnalisé, respectivement.In the Options dialog box, both options pages appear in the My Option Pages category as General and Custom, respectively.

Attributs d’option et la dispositionOption Attributes and Layout

L’interface utilisateur (IU) qui fournit de la page détermine l’apparence des options dans une page d’options personnalisées.The user interface (UI) that the page provides determines the appearance of options in a custom options page. La mise en page, l’étiquetage et la description des options d’une page générique d’options sont déterminées par les attributs suivants :The layout, labeling, and description of options in a generic options page are determined by the following attributes:

  • CategoryAttribute Détermine la catégorie de l’option.CategoryAttribute determines the category of the option.

  • DisplayNameAttribute Détermine le nom complet de l’option.DisplayNameAttribute determines the display name of the option.

  • DescriptionAttribute Détermine la description de l’option.DescriptionAttribute determines the description of the option.

    Note

    Attributs équivalents, SRCategory, LocDisplayName et SRDescription, utilisez les ressources de chaîne pour la localisation et sont définies dans le exemple de projet managé.Equivalent attributes, SRCategory, LocDisplayName, and SRDescription, use string resources for localization and are defined in the managed project sample.

    Prenons le fragment de code suivant :Consider the following code fragment:

    [Category("My Options")]
    [DisplayName("Integer Option")]
    [Description("My integer option")]
    public int OptionInteger { get; set; }
    
    Private _optionInt As Integer
    
    <Category("My Options"),
    DisplayName("Integer Option"),
    Description("My integer option")>
    Public Property OptionInteger() As Integer
        Get
            Return _optionInt
        End Get
        Set(ByVal value As Integer)
            _optionInt = value
        End Set
    End Property
    

    L’option OptionInteger s’affiche dans la page d’options en tant que entier Option dans les mes Options de catégorie.The OptionInteger option appears on the options page as Integer Option in the My Options category. Si l’option est sélectionnée, la description, mon option entier, apparaît dans la zone de description.If the option is selected, the description, My integer option, appears in the description box.

L’accès aux Pages d’Options à partir d’un autre package VSAccessing Options Pages from Another VSPackage

Un VSPackage qui héberge et gère une page d’options par programmation accessibles à partir d’un autre VSPackage à l’aide du modèle automation.A VSPackage that hosts and manages an options page can be programmatically accessed from another VSPackage by using the automation model. Par exemple, dans le code suivant, un VSPackage est enregistré comme une page d’options d’hébergement.For example, in the following code a VSPackage is registered as hosting an option page.

[ProvideOptionPage(typeof(MyOptionPage), "My Category", "My Grid Page", 0, 0, true)]
[Guid("6bb6942e-014c-489e-a612-a935680f703d")]
public sealed class MyToolsOptions : Package
<ProvideOptionPage(GetType(MyOptionPage), "My Category", "My Grid Page", 0, 0, True)>
<Guid("6bb6942e-014c-489e-a612-a935680f703d")>
Public NotInheritable Class MyToolsOptions
    Inherits Package

Le fragment de code suivant obtient la valeur de OptionInteger de MyOptionPage :The following code fragment gets the value of OptionInteger from MyOptionPage:

DTE dte = (DTE)GetService(typeof(DTE));
EnvDTE.Properties props = dte.get_Properties("My Category", "My Grid Page");
int n = (int)props.Item("OptionInteger").Value;
Dim dte As DTE = CType(GetService(GetType(DTE)), DTE)
Dim props As EnvDTE.Properties = dte.get_Properties("My Category", "My Grid Page")
Dim n As Integer = CInt(Fix(props.Item("OptionInteger").Value))

Lorsque le ProvideOptionPageAttribute attribut enregistre une page d’options, la page est enregistrée sous la touche AutomationProperties, si le SupportsAutomation l’argument de l’attribut est true.When the ProvideOptionPageAttribute attribute registers an options page, the page is registered under the AutomationProperties key if the SupportsAutomation argument of the attribute is true. Automation examine cette entrée de Registre pour trouver le VSPackage associé et l’automatisation, puis accède à la propriété via la page d’options hébergé, dans ce cas, Page de grille.Automation examines this registry entry to find the associated VSPackage, and automation then accesses the property through the hosted options page, in this case, My Grid Page.

Le chemin d’accès du Registre de la propriété automation est déterminée en combinant ApplicationRegistryRoot, le mot, AutomationProperties et les options de la page catégorie et le nom.The registry path of the automation property is determined by combining ApplicationRegistryRoot, the word, AutomationProperties, and the options page category and name. Par exemple, si la page d’options a la catégorie Mes, le nom de ma Page de grille et le ApplicationRegistryRoot, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0Exp, la propriété automation a la clé de Registre HKEY_LOCAL_MACHINE\SOFTWARE\ Page de grille Microsoft\VisualStudio\8.0Exp\AutomationProperties\My catégorie\Ma.For example, if the options page has the My Category category, the My Grid Page name, and the ApplicationRegistryRoot, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0Exp, then the automation property has the registry key, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0Exp\AutomationProperties\My Category\My Grid Page.

Note

Le nom canonique, Page de grille Category.My, est la valeur de la sous-clé du nom de cette clé.The canonical name, My Category.My Grid Page, is the value of the Name subkey of this key.