Autor Tema: Llamar a evento de un control con index  (Leído 2716 veces)

0 Usuarios y 1 Visitante están viendo este tema.

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Llamar a evento de un control con index
« en: Junio 14, 2011, 08:27:30 pm »
Tengo un option button donde en su evento click tengo código.
Para invocar la ejecución desde otro control simplemente pongo esta linea:
Option_Click y listo se ejecuta el código de ese evento de dicho control.

Pero como invoco si el control pertenece a una matriz de controles
Option(1),  Option(2), etc

como hago para tener algo similar a esto:
Option(1)_Click

Gracias
Me encuentras en YAcosta.com

seba123neo

  • Terabyte
  • *****
  • Mensajes: 763
  • Reputación: +88/-5
    • Ver Perfil
Re:Llamar a evento de un control con index
« Respuesta #1 en: Junio 14, 2011, 08:45:04 pm »
cuando creas una matriz de controles el visual basic automaticamente añade un parametro Index a los eventos, obviamente para diferenciar a cual pertenece. si queres llamar a uno en particular seria algo asi:

Código: [Seleccionar]
Private Sub Command1_Click(Index As Integer)
    Select Case Index
        Case 0
            MsgBox "llamaste al boton con indice 0"
        Case 1
            MsgBox "llamaste al boton con indice 1"
    End Select
End Sub

Private Sub Form_Load()
    Call Command1_Click(0)
End Sub

saludos.

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Llamar a evento de un control con index
« Respuesta #2 en: Junio 14, 2011, 08:57:43 pm »
Esta casi resuelto. Extiendo un poco el problemilla, quizá la solución este por otro lado ya que no plantee bien la cuestion.

Tengo un picture con degrade y trama como fondo.
Necesito ponerle 10 options button, y los 10 casi son el mismo código y los manejo con variables. Así que el código es uno solo y por el index ejecuto un Select como bien lo explicas.

Pero al poner los OptionButton me percate de que quedan horribles los controles encima del picture, y el OptionButton no tiene propiedad BackStyle = Transparent como lo tiene los labels.

¿Que hacer?
Pues se me ocurrió hacer pequeño el optionbuton para que se vea apenas el circulito y le puse al lado etiquetas que también van del 1 al 10.

Con lo que me dices hice
Private Sub lblOp_Click(Index As Integer)
   Call OpMenu_Click(Index)
End Sub

Y la opción dentro del OptionButton funciona perfectamente con el codigo que me indicas.

El problema esta que el OptionButton no se "prende", ese es el detalle que me falta resolver.

Gracias


Me encuentras en YAcosta.com

seba123neo

  • Terabyte
  • *****
  • Mensajes: 763
  • Reputación: +88/-5
    • Ver Perfil
Re:Llamar a evento de un control con index
« Respuesta #3 en: Junio 14, 2011, 09:00:36 pm »
te entiendo, pues en ese evento que tenes OpMenu_Click, ahi dentro deberias "chequear" el option button segun el index del label. algo como:

Código: [Seleccionar]
option(index).Value = True
saludos.

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:Llamar a evento de un control con index
« Respuesta #4 en: Junio 14, 2011, 09:07:46 pm »
Bien amigo funciono bien, el único detallito es que corre el código interno dos veces, uno por la llamada del label y el otro por el opMenu(index).Value = True, pero no hay procesos complejos alli asi que creo q puedo convivir con eso.

Problema resuelto, muchísimas gracias.

Saludos
Me encuentras en YAcosta.com