Procédure pas à pas : Enregistrer les paramètres utilisateur sur une Page de démarrageWalkthrough: Save user settings on a Start Page

Vous pouvez conserver les paramètres utilisateur pour votre Page de démarrage.You can persist user settings for your Start Page. En suivant cette procédure pas à pas, vous pouvez créer un contrôle qui enregistre un paramètre dans le Registre lorsque l’utilisateur clique sur un bouton et récupère ensuite que la définition de chaque chargement de la Page de démarrage.By following this walkthrough, you can create a control that saves a setting to the registry when the user clicks a button, and then retrieves that setting every time the Start Page loads. Étant donné que le modèle de projet Page de démarrage inclut un contrôle utilisateur personnalisable, et le XAML de Page de démarrage par défaut appelle ce contrôle, vous n’êtes pas obligé de modifier la Page de démarrage lui-même.Because the Start Page project template includes a customizable user control, and the default Start Page XAML calls that control, you don't have to modify the Start Page itself.

La banque de paramètres est instanciée dans cette procédure pas à pas est une instance de la IVsWritableSettingsStore interface, qui lit et écrit dans l’emplacement de Registre suivant lorsqu’elle est appelée : HKCU\Software\Microsoft\VisualStudio\14.0\ <NomCollection >The settings store that is instantiated in this walkthrough is an instance of the IVsWritableSettingsStore interface, which reads and writes to the following registry location when it's called: HKCU\Software\Microsoft\VisualStudio\14.0\<CollectionName>

Lorsqu’il s’exécute dans l’instance expérimentale de Visual Studio, la banque de paramètres lit et écrit dans HKCU\Software\Microsoft\VisualStudio\14.0Exp\<NomCollection >.When it's running in the experimental instance of Visual Studio, the settings store reads and writes to HKCU\Software\Microsoft\VisualStudio\14.0Exp\<CollectionName>.

Pour plus d’informations sur la façon de conserver les paramètres, consultez Extending User Settings and Options.For more information about how to persist settings, see Extending User Settings and Options.

PrérequisPrerequisites

Note

Pour suivre cette procédure pas à pas, vous devez installer le Kit de développement logiciel (SDK) Visual Studio.To follow this walkthrough, you must install the Visual Studio SDK. Pour plus d’informations, consultez Visual Studio SDK.For more information, see Visual Studio SDK.

Vous pouvez télécharger le modèle de projet Page de démarrage à l’aide de Gestionnaire d’extensions.You can download the Start Page project template by using Extension Manager.

Configuration du projetSetting up the project

Pour configurer le projet pour cette procédure pas à pasTo configure the project for this walkthrough

  1. Créez un projet de Page de démarrage, comme décrit dans créer une Page de démarrage personnalisée.Create a Start Page project as described in Create a custom Start Page. Nommez le projet SaveMySettings.Name the project SaveMySettings.

  2. Dans l’Explorateur de solutions, ajoutez les références d’assembly suivantes au projet StartPageControl :In Solution Explorer, add the following assembly references to the StartPageControl project:

    • EnvDTEEnvDTE

    • EnvDTE80EnvDTE80

    • Assemblys Microsoft.VisualStudio.OLE.InteropMicrosoft.VisualStudio.OLE.Interop

    • Microsoft.VisualStudio.Shell.Interop.11.0Microsoft.VisualStudio.Shell.Interop.11.0

  3. Ouvrez MyControl.xaml.Open MyControl.xaml.

  4. Dans le volet XAML, dans le niveau supérieur UserControl définition de l’élément, ajoutez la déclaration d’événement suivante après les déclarations d’espace de noms.From the XAML pane, in the top-level UserControl element definition, add the following event declaration after the namespace declarations.

    Loaded="OnLoaded"  
    
  5. Dans le volet de conception, cliquez sur la zone principale du contrôle, puis appuyez sur supprimer.In the design pane, click the main area of the control, and then press Delete.

    Cette étape supprime le Border élément et tout son contenu et laisse uniquement un haut niveau Grid élément.This step removes the Border element and everything in it, and leaves only the top level Grid element.

  6. À partir de la boîte à outils, faites glisser un StackPanel contrôle à la grille.From the Toolbox, drag a StackPanel control to the grid.

  7. Maintenant, faites glisser un TextBlock, un TextBoxet un bouton pour le StackPanel.Now drag a TextBlock, a TextBox, and a Button to the StackPanel.

  8. Ajouter un x : Name d’attribut pour le TextBoxet un Click événement pour le Button, comme illustré dans l’exemple suivant.Add an x:Name attribute for the TextBox, and a Click event for the Button, as shown in the following example.

    <StackPanel Width="300" HorizontalAlignment="Center" VerticalAlignment="Center">  
        <TextBlock Width="140" FontSize="14">Enter your setting</TextBlock>  
        <TextBox x:Name="txtblk" Margin="0, 5, 0, 10" Width="140" />  
        <Button Click="Button_Click" Width="100">Save My Setting</Button>  
    </StackPanel>  
    

Implémenter le contrôle utilisateurImplement the user control

Pour implémenter le contrôle utilisateurTo implement the user control

  1. Dans le volet XAML, cliquez sur le Click attribut de la Button élément, puis cliquez sur naviguez jusqu’au gestionnaire d’événements.In the XAML pane, right-click the Click attribute of the Button element, and then click Navigate to Event Handler.

    Cette étape ouvre MyControl.xaml.cset crée un gestionnaire de stub pour la Button_Click événement.This step opens MyControl.xaml.cs, and creates a stub handler for the Button_Click event.

  2. Ajoutez le code suivant using instructions au début du fichier.Add the following using statements to the top of the file.

    using EnvDTE80;
    using Microsoft.VisualStudio.Shell;
    using Microsoft.VisualStudio.Shell.Interop;
    using System.ComponentModel;
    
  3. Ajouter une privée SettingsStore propriété, comme indiqué dans l’exemple suivant.Add a private SettingsStore property, as shown in the following example.

    private IVsWritableSettingsStore _settingsStore = null;  
    private IVsWritableSettingsStore SettingsStore  
    {  
        get  
        {  
            if (_settingsStore == null)  
            {  
                // Get a reference to the DTE from the DataContext.   
                var typeDescriptor = DataContext as ICustomTypeDescriptor;  
                var propertyCollection = typeDescriptor.GetProperties();  
                var dte = propertyCollection.Find("DTE", false).GetValue(  
                    DataContext) as DTE2;  
    
                // Get the settings manager from the DTE.   
                var serviceProvider = new ServiceProvider(  
                    (Microsoft.VisualStudio.OLE.Interop.IServiceProvider)dte);  
                var settingsManager = serviceProvider.GetService(  
                    typeof(SVsSettingsManager)) as IVsSettingsManager;  
    
                // Write the user settings to _settingsStore.  
                settingsManager.GetWritableSettingsStore(  
                    (uint)__VsSettingsScope.SettingsScope_UserSettings,  
                    out _settingsStore);  
            }  
            return _settingsStore;  
        }  
    }  
    

    Cette propriété obtient d’abord une référence à la DTE2 interface, qui contient le modèle objet Automation, à partir de la DataContext du contrôle utilisateur, puis utilise l’objet DTE pour obtenir une instance de la IVsSettingsManager interface.This property first gets a reference to the DTE2 interface, which contains the Automation object model, from the DataContext of the user control, and then uses the DTE to get an instance of the IVsSettingsManager interface. Il utilise ensuite cette instance pour retourner les paramètres utilisateur actuels.Then it uses that instance to return the current user settings.

  4. Renseignez le Button_Click événements comme suit.Fill in the Button_Click event as follows.

    private void Button_Click(object sender, RoutedEventArgs e)  
    {  
        int exists = 0;  
        SettingsStore.CollectionExists("MySettings", out exists);  
        if (exists != 1)  
        {  
            SettingsStore.CreateCollection("MySettings");  
        }  
        SettingsStore.SetString("MySettings", "MySetting", txtblk.Text);  
    }  
    

    Il écrit le contenu de la zone de texte dans un champ « MySetting » dans une collection de « MySettings » dans le Registre.This writes the content of the text box to a "MySetting" field in a "MySettings" collection in the registry. Si la collection n’existe pas, il est créé.If the collection does not exist, it's created.

  5. Ajoutez le gestionnaire suivant pour le OnLoaded événement du contrôle utilisateur.Add the following handler for the OnLoaded event of the user control.

    private void OnLoaded(Object sender, RoutedEventArgs e)  
    {  
        string value;  
        SettingsStore.GetStringOrDefault(  
            "MySettings", "MySetting", "", out value);  
        txtblk.Text = value;  
    }  
    

    Ce code définit le texte de la zone de texte à la valeur actuelle de « MySetting ».This code sets the text of the text box to the current value of "MySetting".

  6. Générer le contrôle utilisateur.Build the user control.

  7. Dans l’Explorateur de solutions, ouvrez source.extension.vsixmanifest.In Solution Explorer, open source.extension.vsixmanifest.

  8. Dans l’éditeur de manifeste, définissez Product Name à enregistrer la Page de démarrage des paramètres de mes.In the manifest editor, set Product Name to Save My Settings Start Page.

    Cette fonctionnalité définit le nom de la Page de démarrage tel qu’il doit pour apparaître dans le personnaliser la Page de démarrage liste dans le Options boîte de dialogue.This feature sets the name of the Start Page as it's to appear in the Customize Start Page list in the Options dialog box.

  9. Build StartPage.xaml.Build StartPage.xaml.

Tester le contrôleTest the control

Pour tester le contrôle utilisateurTo test the user control

  1. Appuyez sur F5.Press F5.

    L’instance expérimentale de Visual Studio s’ouvre.The experimental instance of Visual Studio opens.

  2. Dans l’instance expérimentale, sur le outils menu, cliquez sur Options.In the experimental instance, on the Tools menu, click Options.

  3. Dans le environnement nœud, cliquez sur démarrage, puis, dans le personnaliser la Page de démarrage liste, sélectionnez [Extension installée] enregistrer mes paramètres de Page de démarrage .In the Environment node, click Startup, and then, in the Customize Start Page list, select [Installed Extension] Save My Settings Start Page.

    Cliquez sur OK.Click OK.

  4. Fermez la Page de démarrage s’il est ouvert, puis, dans le vue menu, cliquez sur Page de démarrage.Close the Start Page if it's open, and then, on the View menu, click Start Page.

  5. Dans la Page de démarrage, cliquez sur le MyControl onglet.On the Start Page, click the MyControl tab.

  6. Dans la zone de texte, tapez Cat, puis cliquez sur enregistrer mes paramètres.In the text box, type Cat, and then click Save My Setting.

  7. Fermez la Page de démarrage et ouvrez de nouveau.Close the Start Page and then open it again.

    Le mot « Cat » doit être affiché dans la zone de texte.The word "Cat" should be displayed in the text box.

  8. Remplacez le mot « Cat » par le mot « Dog ».Replace the word "Cat" with the word "Dog". Ne cliquez pas sur le bouton.Do not click the button.

  9. Fermez la Page de démarrage et ouvrez de nouveau.Close the Start Page and then open it again.

    Le mot « Dog » doit être affiché dans la zone de texte, même si vous n’avez pas enregistrer le paramètre, car Visual Studio conserve les fenêtres Outil dans la mémoire, même s’ils sont fermés, jusqu'à ce que Visual Studio se ferme.The word "Dog" should be displayed in the text box, even though you didn't save the setting because Visual Studio keeps tool windows in memory, even if they are closed, until Visual Studio itself closes.

  10. Fermez l’instance expérimentale de Visual Studio.Close the experimental instance of Visual Studio.

  11. Appuyez sur F5 pour rouvrir l’instance expérimentale.Press F5 to reopen the experimental instance.

  12. Le mot « Cat » doit être affiché dans la zone de texte.The word "Cat" should be displayed in the text box.

Étapes suivantesNext steps

Vous pouvez modifier ce contrôle utilisateur pour enregistrer et récupérer un nombre quelconque de paramètres personnalisés à l’aide des valeurs différentes à partir des gestionnaires d’événements différents pour obtenir et définir le SettingsStore propriété.You can modify this user control to save and retrieve any number of custom settings by using different values from different event handlers to get and set the SettingsStore property. Tant que vous utilisez un autre propertyName paramètre pour chaque appel à SetString, les valeurs ne remplacent les uns des autres dans le Registre.As long as you use a different propertyName parameter for each call to SetString, the values don't overwrite one another in the registry.

Voir aussiSee also

EnvDTE80.DTE2
Ajout de commandes de Visual Studio à une Page de démarrageAdding Visual Studio commands to a Start Page