Implementar IComponent

09/09/2004 - 14:10 por ArvPart | Informe spam
Buenas:

Soy principante en esto del .Net

Tengo una clase que mantiene una colección que clientes.
He hecho ya que pueda servir como enlace a una datagrid,
pero ahora me gustaría que los que vayan a diseñar los
formularios lo pudieran arrastrar como un componente más.

Todos los ejemplos que he encontrado sobre el tema lo
hacen heredando system.componentmodel.component, pero no
puedo hacerlo así porque la clase que estoy haciendo ya
hereda Inherits System.Collections.CollectionBase (es una
colección).

He implementado como he podido
System.ComponentModel.IComponent, pero al enlazar la grid
con el componente sólo recoge la propiedad "Lenght" que no
sé de donde sale y al ejecutarlo da error de Reflection.
Alguien conoce algún buen ejemplo para hacer un componente
con el interface IComponent?
Por cierto, el ejemplo de la ayuda del .net no da ningún
problema, pero no permite agregarlo a la barra de
controles del editor.

Espero haber explicado correctamente mi problema. Gracias
de antemano.

ArvPart
 

Leer las respuestas

#1 Eduardo A. Morcillo [MS MVP VB]
09/09/2004 - 18:40 | Informe spam
Implementar IComponent no requiere de mucho. Simplemente creas una variable
que contenga la referencia al ISite y le das acceso mediante la propiedad
Site.

Private _site As ISite

<Browsable(False), _
DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)> _
Public Property Site() As System.ComponentModel.ISite Implements
System.ComponentModel.IComponent.Site
Get
Return _site
End Get
Set(ByVal value As System.ComponentModel.ISite)
_site = value
End Set
End Property

Si tienes que liberar algun recurso no manejado tambien implementas Dispose
para que los libere. Una vez seteado el Site puedes chequear en el resto de
los metodos si esta en modo de diseño o no usando su propiedad DesignMode.

He implementado como he podido
System.ComponentModel.IComponent, pero al enlazar la grid
con el componente sólo recoge la propiedad "Lenght" que no
sé de donde sale y al ejecutarlo da error de Reflection.



¿Que tipo de datos devuelve la propiedad Item de la coleccion?

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo

Preguntas similares