Share via


Options et pages Options

Cliquez sur Options dans le menu Outils pour ouvrir la boîte de dialogue Options. Les options de cette boîte de dialogue sont collectivement appelées pages d’options. Le contrôle d’arborescence dans le volet de navigation inclut des catégories d’options, et chaque catégorie a des pages d’options. Lorsque vous sélectionnez une page, ses options s’affichent dans le volet droit. Ces pages vous permettent de modifier les valeurs des options qui déterminent l’état d’un VSPackage.

Prise en charge des pages Options

La Package classe prend en charge la création de pages d’options et de catégories d’options. La DialogPage classe implémente une page d’options.

L’implémentation par défaut d’offre DialogPage ses propriétés publiques à un utilisateur dans une grille générique de propriétés. Vous pouvez personnaliser ce comportement en remplaçant différentes méthodes de la page pour créer une page d’options personnalisées qui possède son propre interface utilisateur. Pour plus d’informations, consultez Création d’une page Options.

La DialogPage classe implémente IProfileManager, qui fournit la persistance pour les pages d’options et également pour les paramètres utilisateur. Les implémentations par défaut des méthodes et SaveSettingsToStorage les modifications de LoadSettingsFromStorage propriété persistent dans une section utilisateur du Registre si la propriété peut être convertie en et à partir d’une chaîne.

Chemin d’accès au Registre des options

Par défaut, le chemin d’accès du Registre des propriétés gérées par une page d’options est déterminé par la combinaison UserRegistryRoot, le mot DialogPage et le nom de type de la classe de page Options. Par exemple, une classe de page d’options peut être définie comme suit.

namespace Company.OptionsPage
{
    public class OptionsPageGeneral : DialogPage
    {
    }
}

Si la UserRegistryRoot valeur est HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0Exp, les paires nom et valeur de propriété sont des sous-clés de HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0Exp\DialogPage\Company.OptionsPage.OptionsPageGeneral.

Le chemin d’accès au Registre de la page d’options lui-même est déterminé en combinant ApplicationRegistryRoot, le mot, ToolsOptionsPages et la catégorie et le nom de la page d’options. Par exemple, si la page Options personnalisées a la catégorie, Mes pages d’options et qu’elle 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.

Outils/Options , attributs de page et disposition

L’attribut ProvideOptionPageAttribute détermine le regroupement de pages d’options personnalisées en catégories dans l’arborescence de navigation de la boîte de dialogue Options . L’attribut ProvideOptionPageAttribute associe une page d’options au VSPackage qui fournit l’interface. Prenons le fragment de code suivant :

[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

Cela déclare que MyPackage fournit deux pages d’options, OptionsPageGeneral et OptionsPageCustom. Dans la boîte de dialogue Options, les deux pages d’options apparaissent dans la catégorie Mes pages d’options en tant que Général et Personnalisé, respectivement.

Attributs d’option et disposition

L’interface utilisateur que la page fournit détermine l’apparence des options dans une page d’options personnalisées. La disposition, l’étiquetage et la description des options dans une page d’options génériques sont déterminées par les attributs suivants :

  • CategoryAttribute détermine la catégorie de l’option.

  • DisplayNameAttribute détermine le nom complet de l’option.

  • DescriptionAttribute détermine la description de l’option.

    Remarque

    Les attributs équivalents, SRCategory, LocDisplayName et SRDescription, utilisent des ressources de chaîne pour la localisation et sont définies dans l’exemple de projet managé.

    Prenons le fragment de code suivant :

    [Category("My Options")]
    [DisplayName("Integer Option")]
    [Description("My integer option")]
    public int OptionInteger { get; set; }
    

L’option OptionInteger s’affiche dans la page options en tant qu’option entière dans la catégorie Mes options. Si l’option est sélectionnée, la description, l’option Mon entier, apparaît dans la zone de description.

Accès aux pages Options à partir d’un autre VSPackage

Un VSPackage qui héberge et gère une page d’options peut être accessible par programmation à partir d’un autre VSPackage à l’aide du modèle Automation. Par exemple, dans le code suivant, un VSPackage est inscrit comme hébergeant une page d’option.

[ProvideOptionPage(typeof(MyOptionPage), "My Category", "My Grid Page", 0, 0, true)]
[Guid("6bb6942e-014c-489e-a612-a935680f703d")]
public sealed class MyToolsOptions : Package

Le fragment de code suivant obtient la valeur d’OptionInteger à partir de 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;

Lorsque l’attribut ProvideOptionPageAttribute inscrit une page d’options, la page est inscrite sous la clé AutomationProperties si l’argument SupportsAutomation de l’attribut est true. Automation examine cette entrée de Registre pour rechercher le VSPackage associé, puis l’automatisation accède à la propriété via la page d’options hébergées, dans ce cas, Page Ma grille.

Le chemin d’accès au Registre de la propriété Automation est déterminé en combinant ApplicationRegistryRoot, le mot, AutomationProperties et la catégorie et le nom de la page options. Par exemple, si la page d’options a la catégorie Ma catégorie, le nom de la page Ma 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\Microsoft\VisualStudio\8.0Exp\AutomationProperties\My Category\My Grid Page.

Remarque

Le nom canonique, My Category.My Grid Page, est la valeur de la sous-clé Name de cette clé.