Partager via


Pages de propriétés

Les utilisateurs peuvent afficher et modifier les propriétés dépendantes de la configuration du projet et indépendantes à l’aide de pages de propriétés. Un bouton Pages de propriétés est activé dans la fenêtre Propriétés ou dans Explorateur de solutions barre d’outils pour les objets qui fournissent une vue de page de propriétés de l’objet sélectionné. Les pages de propriétés sont créées par l’environnement et sont disponibles pour les solutions et les projets. Toutefois, elles peuvent également être mises à disposition pour les éléments de projet qui utilisent des propriétés dépendantes de la configuration. Cette fonctionnalité peut être utilisée lorsque des fichiers au sein d’un projet nécessitent des paramètres de commutateur de compilateur différents pour générer correctement.

Utilisation des pages de propriétés

Si une page de propriétés est déjà affichée et que la sélection change (par exemple, d’une solution à un projet), les informations affichées dans les pages changent pour afficher les propriétés de la nouvelle sélection. S’il n’existe aucune propriété sur l’objet qui prend en charge les pages de propriétés, la page de propriétés est vide.

Si plusieurs objets sont sélectionnés, la page de propriétés affiche l’intersection des propriétés pour tous les éléments sélectionnés. Si l’élément sélectionné ne contient pas de propriétés dépendantes de la configuration et que le bouton Pages de propriétés de la barre d’outils Explorateur de solutions est cliqué, le focus change sur le Fenêtre Propriétés. Pour plus d’informations sur la Fenêtre Propriétés et la sélection, consultez Extension des propriétés.

Si les propriétés sont affichées pour plusieurs objets et que vous modifiez une valeur sur une page de propriétés, toutes les valeurs des objets sont définies sur la nouvelle valeur, même si elles étaient initialement différentes et que la page était vide lorsque les propriétés d’un objet individuel étaient affichées.

Il existe deux types généraux de boîtes de dialogue Pages ProjectProperty disponibles dans Visual Studio. Dans le premier, pour les projets Visual Basic, par exemple, les pages de propriétés sont affichées à l’aide d’un format de champ, comme illustré dans la capture d’écran suivante. Dans la seconde, illustrée plus loin dans cette section, la page de propriétés héberge une grille de propriétés similaire à celle trouvée dans la fenêtre Propriétés.

Pages de propriétés Visual Basic

Boîte de dialogue Pages de propriétés du projet avec format de champ et arborescence

La structure d’arborescence dans la boîte de dialogue Pages de propriétés n’est pas générée à l’aide IVsHierarchyde . L’environnement, basé sur le nom de niveau transmis par les interfaces et les ISpecifyPropertyPages IVsPropertyPage interfaces, le génère.

Il n’existe que deux catégories de niveau supérieur disponibles sur les pages de propriétés Visual Studio :

  • Propriétés communes, qui affiche des informations indépendantes de la configuration pour l’objet ou les objets sélectionnés. Par conséquent, lorsque l’une des sous-catégories Propriétés communes est sélectionnée, les options Configuration, Plateforme et Configuration Manager en haut de la boîte de dialogue ne sont pas disponibles.

  • Propriétés de configuration, qui contient des informations dépendantes de la configuration relatives au débogage, à l’optimisation et aux paramètres de génération pour la solution ou le projet.

    Vous ne pouvez pas créer de catégories de niveau supérieur supplémentaires, mais vous pouvez choisir de ne pas afficher l’une ou l’autre dans votre implémentation de IVsPropertyPage. Si, par exemple, vous n’avez aucune propriété indépendante de la configuration à afficher pour un objet, vous pouvez choisir de ne pas afficher la catégorie Propriétés communes. Vous affichez les propriétés courantes si ISpecifyPropertyPages elles sont implémentées à partir des propriétés de navigation et de configuration de l’élément lorsque vous implémentez ISpecifyPropertyPages dans l’objet de configuration (l’objet implémentant IVsCfg, IVsProjectCfget les interfaces associées).

    Chaque catégorie affichée sous une catégorie de niveau supérieur représente une page de propriétés distincte. Les entrées de catégorie et de sous-catégorie disponibles dans la boîte de dialogue sont déterminées par votre implémentation et ISpecifyPropertyPages IVsPropertyPage.

    IDispatch objets pour les éléments du conteneur de sélection qui ont des propriétés à afficher sur les pages de propriétés implémentent ISpecifyPropertyPages pour énumérer une liste d’ID de classe. Les ID de classe sont passés en tant que variables et ISpecifyPropertyPages sont utilisés pour instancier les pages de propriétés. La liste des ID de classe est également passée pour IVsPropertyPage créer la structure d’arborescence à gauche de la boîte de dialogue. Les pages de propriétés transmettent ensuite des informations à l’objet IDispatch qui implémente ISpecifyPropertyPages et renseigne les informations de chaque page.

    Les propriétés de l’objet parcourir sont récupérées à l’aide IDispatch de chaque objet dans le conteneur de sélection.

    L’implémentation Help::DisplayTopicFromF1Keyword dans votre VSPackage fournit les fonctionnalités du bouton Aide.

    Pour plus d’informations, consultez IDispatch et ISpecifyPropertyPages dans msdn library.

    Le deuxième type de pages de propriétés affichés dans les exemples héberge une forme de la grille des propriétés, comme illustré dans la capture d’écran suivante.

    Pages de propriétés VC

    Boîte de dialogue Pages de propriétés avec la grille des propriétés

    Les interfaces IVSMDPropertyBrowser et IVSMDPropertyGrid (déclarées dans vsmanaged.h) sont utilisées pour créer et remplir la grille des propriétés dans une boîte de dialogue ou une fenêtre.

    L’architecture des projets a considérablement changé par les versions antérieures de Visual Studio. En particulier, la notion de projet active a changé. Dans Visual Studio, il n’existe aucun concept de projet actif. Dans les environnements de développement précédents, le projet actif était le projet qui génère et déploie des commandes par défaut, quel que soit le contexte. À présent, les contrôles de solution et les arbitres qui créent et déploient des commandes s’appliquent aux projets.

    Ce qui était précédemment un projet actif est maintenant capturé de trois façons différentes :

  • Projet de démarrage

    Vous pouvez spécifier un projet ou des projets à partir de la page de propriétés de la solution qui sera démarrée lorsque l’utilisateur appuie sur F5 ou sélectionne Exécuter dans le menu Générer. Cela fonctionne de manière similaire à l’ancien projet actif dans le sens où son nom est affiché dans Explorateur de solutions avec une police en gras.

    Vous pouvez récupérer le projet de démarrage en tant que propriété dans le modèle Automation en appelant DTE.Solution.SolutionBuild.StartupProjects. Dans un VSPackage, vous appelez les get_StartupProject méthodes ou les get_StartupProject méthodes. IVsSolutionBuildManager est disponible en tant que service sur QueryService SID_SVsSolutionBuildManager. Pour plus d’informations, consultez Project Configuration Object and Solution Configuration.

  • Configuration de build de solution active

    Visual Studio a une configuration de solution active, disponible dans le modèle Automation en implémentant DTE.Solution.SolutionBuild.ActiveConfiguration. Une configuration de solution est une collection qui contient une configuration de projet pour chaque projet dans la solution (chaque projet peut avoir plusieurs configurations, sur plusieurs plateformes, avec des noms dissimilars). Pour plus d’informations sur les pages de propriétés de la solution, consultez Configuration de la solution.

  • Projet actuellement sélectionné

    Implémentez la GetCurrentSelection méthode pour récupérer la hiérarchie de projet et l’élément de projet ou les éléments sélectionnés. À partir de DTE, vous utiliseriez les méthodes et SelectedItems.SelectedItem.ProjectItem les SelectedItems.SelectedItem.Project méthodes. Il existe un exemple de code sous ces titres dans les documents Visual Studio principaux.

Voir aussi