Compartilhar via


Visão geral sobre editores de tipo interface do usuário

Você pode fornecer uma experiência de time de design personalizada para tipos de propriedade complexa, Implementando um editor de tipo de interface de usuário.

Exibindo e editando tipos personalizados

Ao expor um tipo personalizado sistema autônomo uma propriedade, há três maneiras de edição o valor da propriedade em um PropertyGrid:

  • Você pode edição sua propriedade no lugar sistema autônomo uma seqüência de caracteres.Isso requer um TypeConverter para o seu tipo personalizado. Para obter mais informações, consulte Como: Implementar um conversor de tipo.

  • Você pode edição sua propriedade com uma interface do usuário da lista suspensa.Isso é especialmente útil para propriedades que podem ser conjunto com um único clicar.

  • Você pode edição sua propriedade com uma caixa de diálogo modal.Se sua propriedade for particularmente complexa, uma caixa de diálogo completo pode ser necessária edição-la corretamente.

Para habilitar um único clicar ou edição de caixa de diálogo modal, você precisa implementar um editor de tipos de interface do usuário para interagir com um PropertyGrid.

Editores de lista suspensa

Editores de lista suspensa são ideais para tipos que podem ser definidos com um único clicar.Por exemplo, edite o Dock e BackColor propriedades das Control classe em um PropertyGrid com um editor de lista suspensa.

Você acesso um editor de tipos de interface do usuário de lista suspensa clicando no botão de seta para () que aparece ao lado da entrada da propriedade selecionada em uma PropertyGrid. A interface do usuário personalizada for exibida, anexados ao PropertyGrid. Parte superior da janela está posicionada na parte inferior da entrada de propriedade e sua largura correspondente da entrada de propriedade.Esta janela do editor também deve estar fechada depois que o usuário fizer uma seleção.A implementação deve telefonar o DropDownControl método para posicionar e dimensionar a interface do usuário digite a janela do editor no ambiente de design e você deverá telefonar o CloseDropDown método para fechar a janela.

Editores de caixa de diálogo modal

Editores de janela restritas são úteis para tipos que exigem uma interface de usuário totalmente interativo.Por exemplo, editores de coleção como o TabPage Collection Editor of TabControl ou o edição colunas caixa de diálogo do DataGridView controle são modais editores.

Você acessar um editor de tipos de interface do usuário modal clicando no botão de reticências () que aparece ao lado da entrada da propriedade selecionada em uma PropertyGrid. Aparece a caixa de diálogo modal e o usuário interage com ele como uma caixa de diálogo comum.A implementação deve chamar o ShowDialog método para posicionar e dimensionar a caixa de diálogo do ambiente de design.

Implementando um editor de tipo de interface do usuário

Para implementar um editor de tipos de interface do usuário personalizado, você deve executar pelo menos as seguintes tarefas:

  • Definir uma classe que deriva de UITypeEditor.

  • Substituir o GetEditStyle método para informar o PropertyGrid o tipo de editor de estilo que usará o editor.

  • Substituir o EditValue método para manipular a interface do usuário, processamento de entrada do usuário e atribuição de valor.

Você pode adicionar suporte adicional para pintar a representação do valor em um PropertyGrid executando as seguintes tarefas:

  • Substituir GetPaintValueSupported para indicar o editor oferece suporte a representação do valor de exibição.

  • Substituir PaintValue para implementar a exibição de representação do valor.

  • Substituir o UITypeEditor método de construtor se o editor deve ter um comportamento de inicialização.

Observação:

Editores de tipo de interface do usuário geralmente são implementados usando tipos a partir do System.Windows.Forms espaço para nome, mas isso não é um requisito. Os editores de tipo de interface do usuário padrão no .NET estrutura derivam de UITypeEditor.

Derivação da classe de UITypeEditor

Seu editor de tipos de interface do usuário personalizada deve derivar do UITypeEditor classe. Defina um construtor padrão se o seu editor de tipos de interface do usuário requer inicialização especial.

Substituindo o método GetEditStyle

Quando você selecionar um componente ou controle no designer, o Propriedades janela é redesenhada com os valores de propriedade do componente selecionar ed ou controle.Quando você seleciona uma propriedade, o ambiente de design consultará o GetEditStyle método para determinar como representar a entrada de propriedade.

Sua substituir retorna um valor do UITypeEditorEditStyle enumeração para comunicar-se o estilo apropriado do editor de tipos de interface do usuário.

A tabela a seguir mostra o comportamento associado a cada UITypeEditorEditStyle valor.

Nome do membro

Comportamento

None

Não fornece a nenhum componente de interface do usuário interativo.Um apropriado TypeConverter é usado para converter uma seqüência de caracteres de entrada ao valor da propriedade.

DropDown

Exibe um botão de seta para baixo () na entrada de propriedade. A interface do usuário está hospedado em uma janela de lista suspensa.

Modal

Exibe um botão de reticências () na entrada de propriedade. A interface do usuário é uma caixa de diálogo modal.

Substituindo o método EditValue

The EditValue método exibe a interface do usuário e define o valor da propriedade para o valor selecionado pelo usuário.

Editor de lista suspensa

Uma operação de soltar - abaixo do editor de tipos de interface do usuário, você consulta um serviço provedor para o IWindowsFormsEditorService interface. Esse serviço fornece a posição e as informações de dimensionar para a interface do usuário.A interface do usuário normalmente será implementado sistema autônomo um Control. O EditValue implementação cria uma instância desse controle, inicializa com a corrente valor da propriedade e, em seguida, passa para o DropDownControl método para a execução com o ambiente de design. Quando o usuário tiver selecionado um novo valor da propriedade, o seu EditValue implementação fecha a interface do usuário, chamando CloseDropDown. O valor retornado do seu EditValue implementação torna-se o novo valor da propriedade exibido em um PropertyGrid.

Editor de janela restrita

Editor modal tipo de interface do usuário, de você consulta um provedor de serviços para o IWindowsFormsEditorService interface. Esse serviço fornece informações sobre a posição para sua caixa de diálogo.A interface do usuário normalmente será implementado sistema autônomo uma classe derivada de Form. O EditValue implementação cria uma instância desse formulário, inicializa com o valor corrente da propriedade e, em seguida, passa para o ShowDialog método para a execução com o ambiente de design. Se o valor retornado dessa telefonar é OK, você recupera o novo valor da propriedade da forma e usá-lo sistema autônomo o valor retornado. O valor retornado do seu EditValue implementação torna-se o novo valor da propriedade exibido em um PropertyGrid.

Parâmetro ITypeDescriptorContext

The EditValue método recebe um ITypeDescriptorContext parâmetro, que pode ser usado para consultar informações contextuais sobre o ambiente de design. Com esse parâmetro, você pode acessar os seguintes membros:

Fornece uma representação gráfica do valor da propriedade

Você pode exibir uma representação gráfica do valor da sua propriedade, substituindo o PaintValue método. Você pode usar o fornecidoPaintValueEventArgs parâmetro para desenhar sua representação em um pequeno retângulo no lado esquerdo da entrada da propriedade em um PropertyGrid.

Observação:

Certifique-se de manter sua representação gráfica dentro dos limites definidos pela Bounds propriedade das PaintValueEventArgs parâmetro.

Substituir o GetPaintValueSupported método para retornar true para alertar o ambiente de design de sua interface do usuário digite editor pinta uma representação personalizada do seu valor.

Consulte também

Tarefas

Como: Criar um editor de tipo de interface do usuário

Como: Criar um controle Windows Forms que demora proveito dos recursos de time de design

Referência

UITypeEditorEditStyle

IWindowsFormsEditorService

Outros recursos

Editores de tipo de interface do usuário