Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Delegar eventos en una clase

Estas en el tema de Delegar eventos en una clase en el foro de Visual Basic clásico en Foros del Web. Hola, tengo una clase que recibe un control textbox como parametro. Dentro de la clase tiene delegado algunos eventos (no se si se dice asi) ...
  #1 (permalink)  
Antiguo 23/08/2006, 15:01
 
Fecha de Ingreso: abril-2004
Mensajes: 192
Antigüedad: 20 años
Puntos: 0
Delegar eventos en una clase

Hola, tengo una clase que recibe un control textbox como parametro. Dentro de la clase tiene delegado algunos eventos (no se si se dice asi) para ese textbox, . Funciona perfecto, por ejemplo parte del codigo resumido para que se entienda

en class1

Código:
Private WithEvents ElText As TextBox

Public Sub Iniciar(UnText As TextBox)

Set ElText = UnText

End Sub


Private Sub ElText_KeyDown(KeyCode As Integer, Shift As Integer)

MsgBox KeyCode

End Sub
..en el form, para 2 textbox (text1 y text2)

Código:
Dim obj1 As Class1
Dim obj2 As Class1
Private Sub Form_Load()
Set obj1 = New Class1
Set obj2 = New Class1
obj1.Iniciar Text1
obj2.Iniciar Text2


End Sub

Private Sub Form_Unload(Cancel As Integer)
Set obj1 = Nothing
Set obj2 = Nothing
End Sub
Como dije los intercepta bien y asi funciona,

La pregunta: ¿como hago para interceptar eventos en controles que forman una matriz ??? ..ya probé obviamente declarando en el procedimiento de evento el parámetro Index as Integer, tambien pasarlo como Object en ves de As TextBox

Código:
Private Sub Text_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)
pero no lo toma y me dice que el procedimiento no se corresponde con la descripcion del evento

..gracias por cualquier dato :)





----------------

saludos
__________________
Recursos visual basic
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:46.