【问题标题】:Why this group Hide/Show code didn't work?为什么这个组隐藏/显示代码不起作用?
【发布时间】:2014-10-01 00:24:26
【问题描述】:

我想编写代码,当单击复选框时,显示隐藏的组框,然后进行简单的计算。 这是我的代码:

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 中不起作用,我的代码有什么问题?我觉得挺好看的。

【问题讨论】:

  • 您希望隐藏组在您选中该框后立即显示吗?
  • 组框是否在其他不可见的地方? when checkbox is clicked: 你想使用 CheckBox 的 CheckedChanged 事件。
  • @user3510227 没错,我想在选中该框后立即显示隐藏组。
  • @LarsTech 先生,你能把它写成答案吗?
  • 你需要另一个事件处理程序来处理你的复选框。现在看起来你只是在检查当用户按下绑定到上面给出的事件处理程序的按钮时它们是否被勾选。

标签: vb.net winforms checkbox groupbox


【解决方案1】:

问题是您正在管理按钮按下时的可见性,而应该在检查复选框时完成。我会按照以下方式进行;

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

【讨论】:

    猜你喜欢
    • 2012-04-15
    • 2014-06-05
    • 1970-01-01
    • 1970-01-01
    • 2018-05-27
    • 1970-01-01
    • 2013-02-27
    • 2018-04-19
    • 2010-12-11
    相关资源
    最近更新 更多