I want to write codes that when checkbox is clicked, the hidden group box is shown, and then do the simple calculations. Here are my codes:
Public Class frmMenu
Private Sub btnCompute_Click(sender As Object, e As EventArgs) Handles btnCompute.Click
Dim Burgers, Fries, Drinks, sum As Double
If chkBurgers.Checked Then
grpBurgers.Visible = True
If radRegular.Checked Then
Burgers = 4.19
ElseIf radWcheese.Checked Then
Burgers = 4.79
ElseIf radWbacon.Checked Then
Burgers = 4.79
ElseIf radWbcheese.Checked Then
Burgers = 5.39
End If
End If
If chkFries.Checked Then
grpFries.Visible = True
If radSmall.Checked Then
Fries = 2.39
ElseIf radMedium.Checked Then
Fries = 3.09
ElseIf radLarge.Checked Then
Fries = 4.99
End If
End If
If chkDrinks.Checked Then
grpDrinks.Visible = True
If radSoda.Checked Then
Drinks = 1.69
ElseIf radBottled.Checked Then
Drinks = 1.49
End If
End If
sum = Burgers + Fries + Drinks
txtCost.Text = sum.ToString("C")
End Sub
End Class
I use
If chkBurgers.Checked Then
grpBurgers.Visible = True
to show hidden group box, but it did not work in VB 2012
, what's wrong with my code? It seems pretty to me.
The problem is that you are managing the visibility on button press, which should instead be done on checking the checkboxes. I would have proceeded as the below;
Public Class frmMenu
Private Burgers, Fries, Drinks, sum As Double
Private Sub chkBurgers_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkBurgers.CheckedChanged
grpBurgers.Visible = chkBurgers.Checked
If chkBurgers.Checked then
Select case True
Case radRegular.Checked
Burgers = 4.19
Case radWcheese.Checked
Burgers = 4.79
Case radWbacon.Checked
Burgers = 4.79
Case radWbcheese.Checked
Burgers = 5.39
Case else
Burgers = 0.00
End Case
End If
End Sub
Private Sub chkFries_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkFries.CheckedChanged
grpFries.Visible = chkFries.Checked
If chkFries.Checked then
Select case True
Case radSmall.Checked
Fries = 2.39
Case radMedium.Checked
Fries = 3.09
Case radLarge.Checked
Fries = 4.99
Case else
Fries = 0.00
End Case
End If
End Sub
Private Sub chkDrinks_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles chkDrinks.CheckedChanged
grpDrinks.Visible = chkDrinks.Checked
If chkDrinks.Checked then
Select case True
Case radSoda.Checked
Drinks = 1.69
Case radBottled.Checked
Drinks = 1.49
Case else
Fries = 0.00
End Case
End If
End Sub
Private Sub btnCompute_Click(sender As Object, e As EventArgs) Handles btnCompute.Click
sum = Burgers + Fries + Drinks
txtCost.Text = sum.ToString("C")
End Sub
End Class