Compartilhar via


Como: implementar um provedor do extensor

Provedores de extensor podem adicionar propriedades para controles.Controles de ActiveX também usava o conceito de provedores de extender, mas eles exigiram que o suporte de linguagem de programação especial.No.NET Framework, extensor provedores exigem que não há suporte especial.No código-fonte, uma propriedade do provedor extender existe no objeto de provedor do extensor.Definindo o valor da propriedade em outro objeto exige duas informações: o objeto para definir o valor e o novo valor da propriedade.Por exemplo, o Windows Forms tem um ToolTip o componente que oferece uma propriedade extender para outros controles.A propriedade que define sobre outros objetos é uma seqüência de caracteres que representa o ToolTip que aparece quando o ponteiro passa sobre o controle.O exemplo de código a seguir mostra como definir o ToolTip propriedade.

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

Em tempo de design, as propriedades de extensor aparecem no navegador de propriedades como propriedades nos objetos que se estendem por eles, em vez do objeto real extender.No exemplo anterior, o ToolTip propriedade aparece em button1, não no tooltip1.

Para implementar um provedor do 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 a CanExtend método, de modo que ele retorna true para cada componente ou controle que o extender fornece propriedades para.

  3. Defina um conjunto de propriedades que o extender pode fornecer a outros componentes.As propriedades são realmente métodos, pois elas terão 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 da ProvidePropertyAttribute leva dois argumentos: primeiro, uma seqüência de caracteres especificando o nome da propriedade para adicionar e, segundo, o tipo do 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 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.

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

Consulte também

Tarefas

Como: implementar um provedor Extender HelpLabel

Outros recursos

Estendendo suporte em tempo de Design