Como: Implementar um provedor Extender
Provedores de extensor podem adicionar propriedades para controles. Controles de ActiveX também usado o conceito de provedores de extender, mas eles exigiram que o suporte de linguagem de programação especial. No.NET Framework, os provedores de extensor não requerem nenhum suporte especial. No código fonte, uma propriedade do provedor extender existe no objeto de provedor do extensor. Definir 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 componente que oferece uma propriedade extender para outros controles. A propriedade que define em 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 Pesquisador de propriedades como propriedades em objetos que eles estendem, em vez de no objeto extensor real. No exemplo anterior, o ToolTip propriedade aparece em button1, não no tooltip1.
Para implementar um provedor extender
Definir um componente que implementa o IExtenderProvider interface.
Public Class MyExtender Implements IExtenderProvider ... End Class
public class MyExtender : IExtenderProvider {...}
A definição de IExtenderProvider é como segue:
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 para que ele retorna true para cada componente ou controle que o extender fornece o loop for de propriedades
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, especificando o nome de uma seqüência de caracteres 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 {...}
Enquanto um provedor extender pode fornecer as propriedades de 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