Compartilhar via


Como: Implementar um provedor do extensor

Provedores de extensor podem adicionar propriedades aos controles.Os controles ActiveX usados também o conceito de provedores de extensor, mas obrigatórias suporte especial da linguagem de programação.No .NET estrutura, provedores de extensor não requerem nenhum suporte especial.No código-fonte, uma propriedade de provedor do extensor existe no objeto do provedor do extensor.Definir o valor da propriedade em outro objeto exige duas informações: o objeto para conjunto o valor e o novo valor da propriedade.Por exemplo, o Windows Forms possui um ToolTip componente que oferece uma propriedade do extensor para outros controles. A propriedade define sobre outros objetos é uma seqüência de caracteres que representa o Dica de ferramenta que aparece quando o ponteiro passa sobre o controle.O exemplo de código a seguir mostra como conjunto o ToolTip propriedade.

tooltip1.SetToolTip(button1, "The tooltip text")
tooltip1.SetToolTip(button1, "The tooltip text");

Em time de design, propriedades de extensão são exibidas no navegador da propriedade sistema autônomo propriedades em objetos que eles estendem, em vez do objeto extensor real.No exemplo anterior, a ToolTip propriedade aparece em button1, não em tooltip1.

Para implementar um provedor de extensor

  1. Definir um componente que implementa o IExtenderProvider interface.

    Public Class MyExtender
       Implements IExtenderProvider
       ...
    End Class
    
    public class MyExtender : IExtenderProvider {...}
    

    A definição de IExtenderProvider é o seguinte:

    Public Interface IExtenderProvider
       Function CanExtend(ByVal extendee As Object) As Boolean
    End Interface
    
    public interface IExtenderProvider {
        bool CanExtend(object extendee);
    }
    
  2. Implementar o CanExtend método para que ele retorna true para cada componente ou controle que o extensor fornece propriedades para.

  3. Defina um conjunto de propriedades do extensor pode fornecer a outros componentes.As propriedades são realmente métodos porque eles recebem um parâmetro extra que especifica o componente para aplicar a propriedade.

Uma classe de provedor do extensor deve ser marcada com um ProvidePropertyAttribute. O construtor de ProvidePropertyAttribute leva dois argumentos: primeiro, uma seqüência de caracteres especificando o nome da propriedade para adicionar e, segundo, o tipo de objeto para fornecer a propriedade.

<ProvideProperty("HelpText", GetType(IComponent))> _
Public Class MyExtender
   Implements IExtenderProvider 
   ...
End Class
[ProvideProperty("HelpText", typeof(IComponent))]
   class MyExtender : IExtenderProvider {...}

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.

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

Consulte também

Tarefas

Como: Implementar um provedor de Extender HelpLabel

Outros recursos

Estendendo suporte em tempo de design