Visual Basic - Toggle button con CheckBox

Life is soft - evento anual de software empresarial
   
Vista:

Toggle button con CheckBox

Publicado por Alvaro (19 intervenciones) el 25/03/2015 11:46:23
Muy buenas!

Estoy intentando hacer un toggle button con checkbox, la cuestión es que se ilumine en verde el que esta seleccionado y el otro se desseleccione y se quede normal.
De momento tengo solamente dos CheckBox con Apparence= Button.
Estoy utilizando este código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Public Class TarifasPersonalizadas
 
  Private Sub Seleccion_Impla(ByVal sender As Object, ByVal e As EventArgs) Handles Chk1.CheckedChanged, Chk2.CheckedChanged
 
        Dim contra As New CheckBox
 
        If sender.name = "ChkI1" Then
 
            contra = Chk2
            Call seleccion(sender, contra)
        ElseIf sender.name = "Chk2" Then
 
            contra = Chk1
            Call seleccion(sender, contra)
        End If
    End Sub
 
    Sub seleccion(ByVal send As Object, ByVal cont As CheckBox)
 
        send.backcolor = Color.LightGreen
        cont.Checked = False
        cont.BackColor = Color.Transparent
        Return
 
    End Sub
 
End Class

Al seleccionar la primera vez funciona bien, el problema es que al cambiar la seleccion se quedan los dos desseleccionados. He puesto un punto de interrupcion y me he dado cuenta de que la segunda vez pasa multiples veces por ambos if, y no entiendo porque....

Muchas gracias por la ayuda!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Toggle button con CheckBox

Publicado por Alvaro (19 intervenciones) el 25/03/2015 13:26:57
Solucionado!
Al final he usado dos botones:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
Dim nom As String
 
  Private Sub Btn1_Click(sender As Object, e As EventArgs) Handles Btn1.Click
        Dim btn As Boolean = True
        Call seleccion(btn)
    End Sub
 
    Private Sub Btn2_Click(sender As Object, e As EventArgs) Handles Btn2.Click
        Dim btn As Boolean = False
        Call seleccion(btn)
    End Sub
 
    Sub seleccion(ByVal bt As Boolean)
        If bt = True Then
            BtnImplanorm.BackColor = Color.LightGreen
            BtnImplaluz.BackColor = Color.Transparent
            Nom = "opcion1"
        Else
            BtnImplaluz.BackColor = Color.LightGreen
            BtnImplanorm.BackColor = Color.Transparent
            Nom = "opcion2"
        End If
 
 
    End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar