crear opption buttons

victor
20 de Julio del 2004
Hola a todos acabo de crear un frame y dentro de el he puesto 3 obbtios butons como debo de hacer para que se active un segundo frame2

semperfimxl
20 de Julio del 2004
Si quieres hacerlo al dar click sobre alguno de los option-buttons que tienes, entonces utilizas el evento _CLICK de cada option-button...

Por ejemplo:
Tienes tu forma; en la forma tienes un frame (Frame1) con 3 option-buttons (Option1, Option2, Option3) dentro del mismo; tienes ademas un segundo frame (Frame2) con otros objetos (Text1, Combobox1) dentro...

en el evento Form_Load() pones:
....
Frame1.Enabled = True ' este contiene los 3 opt-button
Frame2.Enabled = False
Option1.Value = True
'Los option-buttons 2 y 3 automaticamente se pondran en falso al poner en true el numero 1, pero de todos modos ponemos lo que sigue:

'Option2.Value = False
'Option3.Value = False
....

'En el evento CLICK de cada option-button pones lo que deseas se active al dar click el usuario en el mismo:

Private Sub Option1_Click()
Frame2.Enabled = False
End Sub

Private Sub Option2_Click()
Frame2.Enabled = True
Text1.Enabled = True
Combobox1.Enabled = False
End Sub

Private Sub Option3_Click()
Frame2.Enabled = True
Text1.Enabled = True
Combobox1.Enabled = True
End Sub

' En teoria lo anterior deberia funcionar asi:

' Al iniciar la forma, el Frame1 estara habilitado y seleccionado el Option1 (Option2 y Option3 No seleccionados); ademas, el Frame2 estara deshabilitado.

'Si daz click sobre Option1, entonces Frame2 se deshabilitara, dejando asi mismo deshabilitado el Text1 y el Combobox1 que residen dentro de el...


'Al dar click el usuario en el Option2, se habilitara el Frame2, y dentro de el quedara habilitado solamente el Text1. El Combobox1 quedara deshabilitado...

'Si el usuario da click sobre Option3, entonces se habilitara el Frame2, y dentro de el quedaran habilitados tanto el Text1 como el Combobox1...

mundofin
20 de Julio del 2004
Hola.
Mira, yo lo haría de la siguiente manera:
Los frames, dentro de un mismo form, siempre estan activados. Lo que pasa es que pueden estar visibles u ocultos.
Primero crea el segundo frame, y en la propiedad visible pones false.
Después cuando quieras que se active al marcar el optionsbutton, pones:

Private Sub OptionButton1_Click()
If OptionButton1.Value Then
Frame2.Visible = True
End If
End Sub

Private Sub OptionButton2_Click()
If OptionButton2.Value Then
Frame2.Visible = False
End If
End Sub

Espero que te sirva.
Salu2

semperfimxl
20 de Julio del 2004
Solo para efectos documentales:

Consideren que siempre que se tienen dos o mas option-buttons dentro de un contenedor (Form, Frame, etc), solamente uno de ellos podra tener valor de verdadero y, por lo tanto, los demas tendran valor de falso...
Incluso en la vista diseño de la forma, si ponen el valor de uno de ellos en Verdadero, automaticamente los demas tomaran valor de falso...

Ahora bien, cuando en alguno de ellos se activa el evento _CLICK, esto significa que dicho option-button esta en verdadero (y los demas option-buttons del conjunto estan en falso), por lo que resulta de mas preguntar dentro de dicho evento _CLICK: "if optionX.value = true then" ...

Hagan la prueba...
En una forma pongan un frame, y dentro de el, pongan 4 option-buttons...
Corran el programa; los 4 option buttons estaran en falso; den click sobre uno de ellos; el mismo quedara "encendido" y los demas apagados; den click sobre cualquiera de los otros; al que den click se encendera y los demas quedaran apagados...

Ahora pongan dichos option-buttons fuera del frame, sobre la forma y repitan la prueba... El comportamiento es el mismo...

Ahora, en la vista diseño, cambien el valor de alguno de ellos a verdadero; los demas quedan apagados; cambien ahora el valor de alguno de los otros a verdadero: el que anteriormente habian puesto en verdadero se apaga automaticamente y queda encendido solamente aquel al que cambiaron su valor a verdadero...

Resumiendo, en el evento click de un option-button pueden ir directamente al grano sobre lo que quieren que se haga al estar encendido dicho boton, sin tener que preguntar si el mismo esta en Verdadero y/o los demas estan en falso...

Private Sub Option1_Click()
Frame2.Enabled = False
End Sub

NO ES necesario hacer esto:

Private Sub Option1_Click()
If Option1.Value = True then
Frame2.Enabled = True
Option2.Value = False
Option3.Value = False
End If
End Sub

'Repito: solo para efectos documentales...