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.
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 siISpecifyPropertyPages
elles sont implémentées à partir des propriétés de navigation et de configuration de l’élément lorsque vous implémentezISpecifyPropertyPages
dans l’objet de configuration (l’objet implémentantIVsCfg
,IVsProjectCfg
et 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émententISpecifyPropertyPages
pour énumérer une liste d’ID de classe. Les ID de classe sont passés en tant que variables etISpecifyPropertyPages
sont utilisés pour instancier les pages de propriétés. La liste des ID de classe est également passée pourIVsPropertyPage
créer la structure d’arborescence à gauche de la boîte de dialogue. Les pages de propriétés transmettent ensuite des informations à l’objetIDispatch
qui implémenteISpecifyPropertyPages
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
etISpecifyPropertyPages
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.
Boîte de dialogue Pages de propriétés avec la grille des propriétés
Les interfaces
IVSMDPropertyBrowser
etIVSMDPropertyGrid
(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 surQueryService
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
lesSelectedItems.SelectedItem.Project
méthodes. Il existe un exemple de code sous ces titres dans les documents Visual Studio principaux.