Compartilhar via


Páginas de propriedades

Os usuários podem exibir e alterar propriedades dependentes e independentes da configuração do projeto usando páginas de propriedades. Um botão Páginas de Propriedades é habilitado na janela Propriedades ou na barra de ferramentas do Gerenciador de Soluções para objetos que fornecem uma exibição de página de propriedades do objeto selecionado. As páginas de propriedades são criadas pelo ambiente e estão disponíveis para soluções e projetos. No entanto, eles também podem ser disponibilizados para itens de projeto que usam propriedades dependentes de configuração. Essa funcionalidade pode ser usada quando os arquivos em um projeto exigem configurações diferentes da opção do compilador para serem compilados corretamente.

Usando páginas de propriedades

Se uma página de propriedades já estiver exibida e a seleção for alterada (por exemplo, de uma solução para um projeto), as informações exibidas nas páginas serão alteradas para exibir as propriedades da nova seleção. Se não houver propriedades no objeto que ofereçam suporte a páginas de propriedades, a página de propriedades estará vazia.

Se vários objetos forem selecionados, a página de propriedades exibirá a interseção de propriedades de todos os itens selecionados. Se o item selecionado não contiver propriedades dependentes de configuração e o botão Páginas de Propriedades na barra de ferramentas do Gerenciador de Soluções for clicado, o foco será alterado para a janela Propriedades. Para obter mais informações relacionadas à janela Propriedades e seleção, consulte Estendendo propriedades.

Se as propriedades forem exibidas para vários objetos e você alterar um valor em uma página de propriedades, todos os valores dos objetos serão definidos como o novo valor, mesmo que sejam inicialmente diferentes e a página esteja em branco quando as propriedades de um objeto individual forem exibidas.

Há dois tipos gerais de caixas de diálogo ProjectProperty Pages disponíveis no Visual Studio. No primeiro, para projetos do Visual Basic, por exemplo, as páginas de propriedades são exibidas usando um formato de campo, conforme mostrado na captura de tela a seguir. Na segunda, mostrada posteriormente nesta seção, a página de propriedades hospeda uma grade de propriedades semelhante à encontrada na Janela de Propriedades.

Páginas de propriedades do Visual Basic

Caixa de diálogo Páginas de propriedades do projeto com formato de campo e estrutura em árvore

A estrutura em árvore na caixa de diálogo Páginas de Propriedades não é criada usando IVsHierarchy. O ambiente, com base no nome do nível passado a ele pelas ISpecifyPropertyPages interfaces e as IVsPropertyPage interfaces, o constrói.

Há apenas duas categorias de nível superior disponíveis nas páginas de propriedades do Visual Studio:

  • Propriedades comuns, que exibe informações independentes de configuração para o objeto ou objetos selecionados. Como resultado, quando uma das subcategorias Propriedades Comuns é selecionada, as opções Configuração, Plataforma e Configuration Manager na parte superior da caixa de diálogo não estão disponíveis.

  • Propriedades de configuração, que contém informações dependentes da configuração relacionadas aos parâmetros de depuração, otimização e build para a solução ou projeto.

    Você não pode criar nenhuma categoria de nível superior adicional, mas pode optar por não exibir uma ou outra em sua implementação do IVsPropertyPage. Se, por exemplo, você não tiver nenhuma propriedade independente de configuração para exibir para um objeto, poderá optar por não exibir a categoria Propriedades comuns. Você exibe Propriedades comuns se ISpecifyPropertyPages for implementado a partir do objeto de navegação do item e das propriedades de configuração quando você implementa ISpecifyPropertyPages no objeto de configuração (o objeto que implementa IVsCfg, IVsProjectCfge interfaces relacionadas).

    Cada categoria exibida em uma categoria de nível superior representa uma página de propriedades separada. As entradas de categoria e subcategoria disponíveis na caixa de diálogo são determinadas pela implementação de ISpecifyPropertyPages e IVsPropertyPage.

    IDispatch objetos para itens no contêiner de seleção que têm propriedades a serem exibidas nas páginas de propriedades implementam ISpecifyPropertyPages para enumerar uma lista de IDs de classe. As IDs de classe são passadas como variáveis e ISpecifyPropertyPages são usadas para instanciar as páginas de propriedades. A lista de IDs de classe também é passada para IVsPropertyPage criar a estrutura de árvore à esquerda da caixa de diálogo. Em seguida, as páginas de propriedades passam informações de volta para o IDispatch objeto que implementa ISpecifyPropertyPages e preenche as informações de cada página.

    As propriedades do objeto de navegação são recuperadas usando IDispatch para cada objeto no contêiner de seleção.

    A implementação Help::DisplayTopicFromF1Keyword em seu VSPackage fornece a funcionalidade para o botão Ajuda.

    Para obter mais informações, consulte IDispatch e ISpecifyPropertyPages na biblioteca MSDN.

    O segundo tipo de página de propriedades exibido nos exemplos hospeda um formulário da grade de propriedades, conforme mostrado na captura de tela a seguir.

    Páginas de propriedades VC

    Caixa de diálogo Páginas de Propriedades com grade de propriedades

    As interfaces IVSMDPropertyBrowser e IVSMDPropertyGrid (declaradas em vsmanaged.h) são usadas para criar e preencher a grade de propriedades em uma caixa de diálogo ou janela.

    A arquitetura dos projetos mudou consideravelmente em relação às versões anteriores do Visual Studio. Em particular, a noção de qual projeto está ativo mudou. No Visual Studio, não há conceito de um projeto ativo. Em ambientes de desenvolvimento anteriores, o projeto ativo era o projeto para o qual os comandos de compilação e implantação seriam padronizados, independentemente do contexto. Agora, a solução controla e arbitra quais comandos de build e implantação se aplicam a quais projetos.

    O que antes era um projeto ativo agora é capturado de três maneiras diferentes:

  • O projeto Startup

    Você pode especificar um projeto ou projetos na página de propriedades da solução que será iniciado quando o usuário pressionar F5 ou selecionar Executar no menu Compilar. Isso funciona de maneira semelhante ao antigo projeto ativo, no sentido de que seu nome é exibido no Gerenciador de Soluções com fonte em negrito.

    Você pode recuperar o projeto de inicialização como uma propriedade no modelo de automação chamando DTE.Solution.SolutionBuild.StartupProjects. Em um VSPackage, você chama os get_StartupProject métodos ou .get_StartupProject IVsSolutionBuildManager está disponível como um serviço pela QueryService On SID_SVsSolutionBuildManager. Para obter mais informações, consulte Configuração do objeto de configuração do projeto e Configuração da solução.

  • Configuração de build de solução ativa

    O Visual Studio tem uma configuração de solução ativa, disponível no modelo de automação implementando DTE.Solution.SolutionBuild.ActiveConfigurationo . Uma configuração de solução é uma coleção que contém uma configuração de projeto para cada projeto na solução (cada projeto pode ter várias configurações, em várias plataformas, com nomes diferentes). Para obter mais informações relacionadas às páginas de propriedades da solução, consulte Configuração da solução.

  • Projeto atualmente selecionado

    Implemente o GetCurrentSelection método para recuperar a hierarquia do projeto e o item ou itens de projeto selecionados. No DTE, você usaria os SelectedItems.SelectedItem.Project métodos and SelectedItems.SelectedItem.ProjectItem . Há um código de exemplo sob esses títulos nos principais documentos do Visual Studio.

Confira também