Pages de propriétésProperty Pages

Les utilisateurs peuvent afficher et modifier les propriétés de projet dépend de la configuration et - indépendante à l’aide des pages de propriétés.Users can view and change project configuration-dependent and -independent properties using property pages. A Pages de propriétés bouton est activé dans le propriétés fenêtre ou sur la barre d’outils de l’Explorateur de solutions pour les objets qui fournissent un affichage de page de propriété de l’objet sélectionné.A Property Pages button is enabled in the Properties window or on Solution Explorer toolbar for objects that provide a property page view of the selected object. Pages de propriétés sont créés par l’environnement et sont disponibles pour les solutions et projets.Property pages are created by the environment and are available for solutions and projects. Ils peuvent, toutefois, également être mises à disposition pour les éléments de projet qui utilisent les propriétés dépendantes de la configuration.They can, however, also be made available for project items that make use of configuration-dependent properties. Cette fonctionnalité peut être utilisée lorsque les fichiers dans un projet nécessitent des paramètres de commutateur de compilateur différente créer correctement.This capability might be used when files within a project require different compiler switch settings to build properly.

À l’aide des Pages de propriétésUsing Property Pages

Si une page de propriétés est déjà affichée et la sélection change (par exemple, à partir d’une solution à un projet), les informations affichées dans les pages de modifications pour afficher les propriétés de la nouvelle sélection.If a property page is already displayed and the selection changes (for example, from a solution to a project), the information displayed in the pages changes to display the properties for the new selection. S’il n’y a pas de propriétés sur l’objet qui prend en charge des pages de propriétés, la page de propriétés est vide.If there are no properties on the object that support property pages, the property page is empty.

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.If multiple objects are selected, the property page displays the intersection of properties for all selected items. Si l’élément sélectionné ne contient pas de propriétés dépendantes de la configuration et la Pages de propriétés bouton dans la barre d’outils de l’Explorateur de solutions, le focus passe à la fenêtre Propriétés.If the selected item does not contain configuration-dependent properties and the Property Pages button on the Solution Explorer toolbar is clicked, focus changes to the Properties window. Pour plus d’informations relatives à la fenêtre Propriétés et la sélection, consultez étendre les propriétés.For more information relating to the Properties window and selection, see Extending Properties.

Si les propriétés sont affichées pour plusieurs objets et que vous modifiez une valeur dans une page de propriétés, toutes les valeurs pour les objets sont définis pour la nouvelle valeur même si elles étaient initialement différents et que la page était vide lorsque les propriétés d’un objet ont été affichées.If properties are displayed for multiple objects and you change a value on a property page, all of the values for the objects are set to the new value even if they were initially different and the page was blank when an individual object's properties were displayed.

Il existe deux types généraux de ProjectProperty Pages boîtes de dialogue disponibles dans Visual StudioVisual Studio.There are two general types of ProjectProperty Pages dialog boxes available in Visual StudioVisual Studio. Dans la première, pour les projets Visual Basic, par exemple, les pages de propriétés sont affichés à l’aide d’un format de champ, comme illustré dans la capture d’écran suivante.In the first, for Visual Basic projects, for example, the property pages are displayed using a field format, as shown in the following screenshot. Dans la seconde, présenté plus loin dans cette section, la propriété hôtes de page une grille des propriétés similaires à celles figurant dans la fenêtre Propriétés.In the second, shown later in this section, the property page hosts a properties grid similar to that found in the Properties Window.

Pages de propriétés Visual BasicVisual Basic Property Pages
Boîte de dialogue Pages de propriétés de projet avec la structure d’arborescence et de format de champProject Property Pages dialog box with field format and tree structure

L’arborescence dans la boîte de dialogue Pages de propriétés n’est pas générée à l’aide IVsHierarchy.The tree structure in the Property Pages dialog box is not built using IVsHierarchy. L’environnement, basé sur le nom du niveau lui est passé par le ISpecifyPropertyPages et IVsPropertyPage les interfaces, il génère.The environment, based on the level name passed to it by the ISpecifyPropertyPages and the IVsPropertyPage interfaces, builds it.

Il existe deux catégories de niveau supérieur sur Visual StudioVisual Studio pages de propriétés :There are only two top-level categories available on Visual StudioVisual Studio Property pages:

  • Propriétés communes, qui affiche des informations liées à la configuration pour l’ou les objets sélectionnés.Common Properties, which displays configuration-independent information for the selected object or objects. Par conséquent, lorsque l’un des sous-catégories de propriétés communes est sélectionné, les options de Configuration, la plateforme et Configuration Manager dans la partie supérieure de la boîte de dialogue ne sont pas disponibles.As a result, when one of the Common Properties subcategories is selected, the Configuration, Platform, and Configuration Manager options across the top of the dialog box are not available.

  • Propriétés de configuration, qui contient des informations dépend de la configuration des paramètres de Build, de débogage et de l’optimisation de la solution ou le projet.Configuration Properties, which contains configuration-dependent information relating to Debugging, Optimization, and Build parameters for the solution or project.

    Impossible de créer des catégories supplémentaires de niveau supérieur, mais vous pouvez choisissez de ne pas afficher une ou l’autre dans votre implémentation de IVsPropertyPage.You cannot create any additional top-level categories, but you can choose not to display one or the other in your implementation of IVsPropertyPage. Si, par exemple, vous n’avez pas de toutes les propriétés liées à la configuration à afficher pour un objet, vous pouvez choisir ne pas afficher la catégorie de propriétés communes.If, for example, you do not have any configuration-independent properties to display for an object, you can choose not to display the Common Properties category. Afficher les propriétés communes si ISpecifyPropertyPages est implémentée à partir de l’objet de recherche de l’élément et les propriétés de Configuration lorsque vous implémentez ISpecifyPropertyPages dans l’objet de configuration (l’objet qui implémente IVsCfg, IVsProjectCfget connexes interfaces).You display Common properties if ISpecifyPropertyPages is implemented from the item's browse object and Configuration properties when you implement ISpecifyPropertyPages in the configuration object (the object implementing IVsCfg, IVsProjectCfg, and related interfaces).

    Chaque catégorie affichée sous la catégorie de niveau supérieur représente une page de propriétés séparées.Each category displayed under a top-level category represents a separate property page. Entrées de catégorie et sous-catégorie disponibles dans la boîte de dialogue sont déterminées par votre implémentation de ISpecifyPropertyPages et IVsPropertyPage.Category and subcategory entries available in the dialog box are determined by your implementation of ISpecifyPropertyPages and IVsPropertyPage.

    IDispatch les objets des éléments dans le conteneur de sélection qui ont des propriétés à afficher sur l’implémentation des pages de propriété ISpecifyPropertyPages pour énumérer une liste d’ID de classe.IDispatch objects for items in the selection container that have properties to be displayed on property pages implement ISpecifyPropertyPages to enumerate a list of class IDs. Les ID de classe sont passés en tant que variables à ISpecifyPropertyPages et sont utilisés pour instancier les pages de propriétés.The class IDs are passed as variables to ISpecifyPropertyPages and are used to instantiate the property pages. La liste des ID de classe est également passée à IVsPropertyPage pour créer la structure d’arborescence à gauche de la boîte de dialogue.The list of class IDs is also passed to IVsPropertyPage to create the tree structure on the left of the dialog box. Les pages de propriétés, puis passez les informations de sauvegarde à la IDispatch objet qui implémente ISpecifyPropertyPages et remplit les informations relatives à chaque page.The property pages then pass information back to the IDispatch object that implements ISpecifyPropertyPages and fills in the information for each page.

    Les propriétés de l’objet sont récupérées à l’aide IDispatch pour chaque objet dans le conteneur de sélection.The properties of the browse object are retrieved using IDispatch for each object in the selection container.

    Mise en œuvre Help::DisplayTopicFromF1Keyword dans votre package Visual Studio fournit les fonctionnalités pour le bouton aide.Implementing Help::DisplayTopicFromF1Keyword in your VSPackage provides the functionality for the Help button.

    Pour plus d’informations, consultez IDispatch et ISpecifyPropertyPagesdans MSDN library.For further information, see IDispatch and ISpecifyPropertyPagesin the MSDN library.

    Le second type de pages de propriétés affiché dans les hôtes exemples une forme de la grille des propriétés, comme indiqué dans la capture d’écran suivante.The second type of property pages displayed in the samples hosts a form of the properties grid, as shown in the following screenshot.

    Pages de propriété VCVC Propery Pages
    Boîte de dialogue Pages de propriétés avec la grille des propriétésProperty Pages dialog box with properties grid

    Les interfaces IVSMDPropertyBrowser et IVSMDPropertyGrid (déclaré dans vsmanaged.h) sont utilisés pour créer et remplir la grille des propriétés dans une boîte de dialogue ou une fenêtre.The interfaces IVSMDPropertyBrowser and IVSMDPropertyGrid (declared in vsmanaged.h) are used to create and populate the properties grid within a dialog box or window.

    L’architecture de projets a considérablement changé à partir de versions précédentes de Visual StudioVisual Studio.The architecture of projects has changed considerably from past versions of Visual StudioVisual Studio. En particulier, la notion de projet qui est active a été modifié.In particular, the notion of which project is active has changed. Dans Visual StudioVisual Studio, il n’existe pas de concept d’un projet actif.In Visual StudioVisual Studio, there is no concept of an active project. Dans les environnements de développement précédents, le projet actif a été le projet que vous générez et déployez des commandes est par défaut, quelle que soit le contexte.In previous development environments, the active project was the project that build and deploy commands would default to regardless of the context. À présent, la solution de contrôle et détermine laquelle générer et déployer des commandes s’appliquent à des projets.Now, the solution controls and arbitrates which build and deploy commands apply to which projects.

    Quel était précédemment un projet actif est désormais capturé dans un des trois façons différentes :What was previously an active project is now captured in one of three different ways:

  • Le projet de démarrageThe Startup project

    Vous pouvez spécifier un ou plusieurs projets à partir de la page de propriétés de la solution qui démarrera lorsque l’utilisateur appuie sur F5 ou sélectionne exécuter dans le menu Générer.You can specify a project or projects from the solution's property page that will be started when the user presses F5 or selects Run from the Build menu. Cela fonctionne de manière similaire à l’ancien projet actif dans le sens que son nom est affiché dans l’Explorateur de solutions en gras.This works in a manner similar to the old active project in the sense that its name is displayed in Solution Explorer with bold font.

    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.You can retrieve the startup project as a property in the automation model by calling DTE.Solution.SolutionBuild.StartupProjects. Dans un VSPackage, vous appelez le get_StartupProject ou get_StartupProject méthodes.In a VSPackage, you call the get_StartupProject or the get_StartupProject methods. IVsSolutionBuildManager est disponible en tant que service en QueryService sur SID_SVsSolutionBuildManager.IVsSolutionBuildManager is available as a service by QueryService on SID_SVsSolutionBuildManager. Pour plus d’informations, consultez objet de Configuration de projet et Configuration de la Solution.For more information, see Project Configuration Object and Solution Configuration.

  • Configuration de build de solution ActiveActive solution build configuration

    Visual StudioVisual Studio a une configuration de solution active, disponible dans le modèle automation en implémentant DTE.Solution.SolutionBuild.ActiveConfiguration. has an active solution configuration, available in the automation model by implementing DTE.Solution.SolutionBuild.ActiveConfiguration. Une configuration de solution est une collection qui contient une seule configuration de projet pour chaque projet dans la solution (chaque projet peut avoir plusieurs configurations, sur plusieurs plateformes avec des noms différents).A solution configuration is a collection that contains one project configuration for each project in the solution (each project can have multiple configurations, on multiple platforms, with dissimilar names). Pour plus d’informations relatives aux pages de propriétés de la solution, consultez Configuration de la Solution.For more information relating to the solution's property pages, see Solution Configuration.

  • Projet actuellement sélectionnéProject currently selected

    Implémentez la GetCurrentSelection pour récupérer la hiérarchie de projet et élément de projet ou les éléments sélectionné.Implement the GetCurrentSelection method to retrieve the project hierarchy and project item or items selected. À partir de DTE, vous utiliseriez le SelectedItems.SelectedItem.Project et SelectedItems.SelectedItem.ProjectItem méthodes.From DTE, you would use the SelectedItems.SelectedItem.Project and SelectedItems.SelectedItem.ProjectItem methods. Exemples de code sous ces en-têtes dans le noyau Visual StudioVisual Studio documents.There is sample code under those headings in the core Visual StudioVisual Studio documents.

Voir aussiSee Also

IVsPropertyPage
Gestion des Options de Configuration Managing Configuration Options
Objet de Configuration de projet Project Configuration Object
Configuration de la solutionSolution Configuration