Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado por: YAcosta 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
-
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:
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.
-
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
-
te entiendo, pues en ese evento que tenes OpMenu_Click, ahi dentro deberias "chequear" el option button segun el index del label. algo como:
option(index).Value = True
saludos.
-
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