Compartilhar via


Visão geral do provedor de extensor

Um provedor 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 no formulário.O ToolTip propriedade será exibida em qualquer anexado PropertyGrid controle.Em tempo de design, você pode definir um valor para essa propriedade.

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

Implementação

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

  • Use o ProvidePropertyAttribute atributo para especificar a propriedade fornecida pelo seu 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 Extender HelpLabel.

ms171836.collapse_all(pt-br,VS.110).gifAtributo ProvideProperty

O provedor do extensor é uma classe, e como tal, tem suas próprias propriedades e métodos.Para designar uma propriedade como a propriedade a serem fornecidos aos outros componentes, você aplica o ProvidePropertyAttribute atributo no nível de classe.Este atributo especifica o nome da propriedade para fornecer e o tipo de objeto pode fornecer essa propriedade para.

ms171836.collapse_all(pt-br,VS.110).gifImplementar a propriedade fornecida

Por convenção, você não implementar a propriedade fornecida como uma propriedade, mas como um par de métodos.Você deve nomear esses métodos GetPropertyName e definirPropertyName.Por exemplo, se a sua implementação de provedor do extensor fornece uma propriedade chamada DemoText, você nomeia os métodos GetDemoText e SetDemoText.

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

ms171836.collapse_all(pt-br,VS.110).gifControles que recebem a propriedade fornecida de rastreamento.

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

Por exemplo, você poderia usar a instância de componente, como o Key para um DictionaryEntry e o valor da propriedade como o Value da DictionaryEntry.Quando o GetPropertyName método é chamado, sua implementação, em seguida, deve consultar a coleção para o valor da propriedade correspondente a determinado componente.

ms171836.collapse_all(pt-br,VS.110).gifImplementando a Interface IExtenderProvider

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

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

Consulte também

Tarefas

Como: implementar um provedor do extensor

Como: implementar um provedor Extender HelpLabel

Outros recursos

Estendendo suporte em tempo de Design