2014-09-30 202 views
0

我想編寫代碼,當單擊複選框時,會顯示隱藏的組合框,然後執行簡單的計算。 這裏是我的代碼:爲什麼此組隱藏/顯示代碼不起作用?

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 

我用

If chkBurgers.Checked Then 
    grpBurgers.Visible = True 

顯示隱藏組中,但它並沒有在VB 2012工作,有什麼錯我的代碼?這對我來說很好。

+0

您是否希望在您選中該框後立即顯示隱藏的羣組? – user3510227 2014-09-30 15:02:28

+2

是不是可見的其他東西里面的組框? '當單擊複選框時':您想要使用CheckBox的CheckedChanged事件。 – LarsTech 2014-09-30 15:02:35

+0

@ user3510227的確,是的,只要我選中該框,我想要顯示隱藏的組。 – 2014-09-30 15:07:17

回答

2

問題是,您正在管理按鈕按下的可見性,而應該在檢查複選框時完成。我會按照以下進行;

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 
相關問題