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
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); }
Implementar a CanExtend método, de modo que ele retorna true para cada componente ou controle que o extender fornece propriedades para.
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