Hola!
No me he peleado aún con VB2005, pero en 6.0, es igual que dice
David, agregando la claúsula
WithEvents (a nivel de formulario, eso sí):
Código:
Dim WithEvents Boton As New CommandButton
Los eventos se programan igual que si el botón se hubiera colocado en tiempo de diseño, y creo que incluso se pueden elegir desde las comboboxes que hay sobre el código en el editor.
Pero no sirve para hacer arrays... tuve muchos problemas con eso
Lo más inmediato (te sigo hablando en VB6, en 2005 imagino que no habrá muchas diferencias), es crear un botón en tiempo de diseño con las propiedades Index=0 y Visible=False; cada vez que quieras agregar un botón, añades uno a la colección con un código como este:
Código:
' Suponemos que el botón que has puesto se llama "cmdUsuario"
Dim Index As Long
Index = Ubound(cmdUsuario)
Load cmdUsuario(Index)
With cmdUsuario(Index)
.Caption = "Botón #" & Index
.Top = ... ' Coordenada horizontal
.Left = ... ' Coordenada vertical
<sigue definiendo las propiedades que necesites>
.Visible = True
End With
' Preparamos otro botón oculto, por si seguimos añadiendo cosas
Load cmdUsuario(Index + 1)
cmdUsuario(Index + 1).Visible = False
Esto te sirve como base. Para lo que quieres hacer, necesitarás mantener también un array o una colección con el valor de "data" para cada botón.