Compartilhar via


Visão geral do provedor de extensor

An fornecedor do extensor é um componente que fornece propriedades para outros componentes.Por exemplo, quando um ToolTip componente é adicionado a um formulário, ele fornece uma propriedade chamada ToolTip a cada controle em formulário. The ToolTip propriedade aparece em seguida, em qualquer anexado PropertyGrid controle. Em time de design, você pode conjunto um valor para essa propriedade.

A propriedade fornecida pelo provedor de extensor realmente reside no próprio objeto do provedor de extensor e, portanto, não é uma propriedade true do componente que ele modifica.Em time de design, a propriedade aparece em qualquer PropertyGrid anexado ao componente que está sendo modificado. No entanto, em time de execução, você não pode acessar a propriedade por meio do próprio componente.Em vez disso, você chama o GetToolTip método na ToolTip componente.

Implementação

A lista a seguir descreve as etapas necessárias para implementar um provedor de extensor:

  • Use o ProvidePropertyAttribute atributo para especificar a propriedade fornecida pelo provedor de extensor.

  • Implemente a propriedade fornecida.

  • Controlar quais controles recebem sua propriedade fornecida.

  • Implementar a interface IExtenderProvider.

Para obter detalhes, consulte:Como: Implementar um provedor do extensor.Para obter um exemplo completo, consulte Como: Implementar um provedor de Extender HelpLabel.

Atributo ProvideProperty

O fornecedor do extensor é uma classe e sistema autônomo tal, tem suas próprias propriedades e métodos.Para designar uma propriedade sistema autônomo a propriedade a ser fornecido a outros componentes, você aplicar o ProvidePropertyAttribute atributo no nível de classe. Este atributo especifica o nome da propriedade para fornecer e o tipo de objeto ele pode fornecer essa propriedade para.

Implementar a propriedade fornecida

Por convenção, você não implemente a propriedade fornecida sistema autônomo uma propriedade, mas em vez disso, sistema autônomo um emparelhar de métodos.Você deve nome esses métodos Get Propriedade nome and conjuntoPropriedade nome.Por exemplo, se sua implementação de provedor do extensor fornece uma propriedade chamada DemoText, você nomeia os métodos GetDemoText e SetDemoText.

Esses métodos utilizam um único Component parâmetro, que lhe permite controlar qual propriedade de valor é atribuído ao qual componente.

Controles que recebe a propriedade fornecida de acompanhamento

A implementação da propriedade fornecida requer um IDictionary ou algum Outros objeto de coleção para registrar e recuperar os valores de propriedade para cada componente.

Por exemplo, você pode usar a instância do componente sistema autônomo o Key para um DictionaryEntry e o valor da propriedade sistema autônomo o Value da DictionaryEntry. Quando o Get PropertyName método é chamado, sua implementação poderia consultar a coleção para o valor da propriedade correspondente a determinado componente.

Implementando a interface IExtenderProvider

Cada classe de extensor deve implementar o IExtenderProvider interface. Essa interface consiste em um único método, CanExtend, que retorna um valor booliano e indica para o designer se um componente é um candidato para ser estendido ou não.

Embora um provedor de extensor pode fornecer propriedades para qualquer componente, a implementação normalmente inclui recursos que tornam utilizáveis somente com uma categoria específica de componentes.Por exemplo, convém criar um extensor que fornece uma propriedade somente para controles.A implementação do CanExtend método pode impor essa restrição.

Consulte também

Tarefas

Como: Implementar um provedor do extensor

Como: Implementar um provedor de Extender HelpLabel

Outros recursos

Estendendo suporte em tempo de design