【发布时间】:2013-03-27 08:38:24
【问题描述】:
首先,我想说这是我正在做的家庭作业,但无法以这种方式完成。所以我必须使用 If 语句完成分配。目标是构建一个用户可以填写以提交订单的表单。有三个复选框(一个用于汉堡,一个用于薯条,另一个用于饮料)。如果您选中其中一个框,则会显示一个组框,其中包含单选按钮以进行您想要的选择。
我想尝试根据复选框是否被选中来使用 select 语句。然后为每个单选按钮使用不同的大小写。但是,如果我运行程序并单击我提供的一个按钮,它将使用第一个可用案例填充我的 dblCost 变量。下面是我的代码。我真的很想了解我做错了什么,或者这不是解决这个问题的可行方法。下面是我想使用的代码:
Public Class frmRestaurantOrder
Private Sub CheckedChanged(sender As Object, e As EventArgs) Handles cbxBurgers.CheckedChanged, cbxFries.CheckedChanged, cbxDrinks.CheckedChanged
If (cbxBurgers.Checked) Then
gbxBurgers.Visible = True
Else
gbxBurgers.Visible = False
End If
If (cbxFries.Checked) Then
gbxFries.Visible = True
Else
gbxFries.Visible = False
End If
If (cbxDrinks.Checked) Then
gbxDrinks.Visible = True
Else
gbxDrinks.Visible = False
End If
End Sub
Private Sub btnCompute_Click(sender As Object, e As EventArgs) Handles btnCompute.Click
Dim dblCost As Double = 0
Select Case gbxBurgers.Visible = True
Case rbtRegularBurger.Checked
dblCost += 4.19
Case rbtCheeseBurger.Checked
dblCost += 4.79
Case rbtBaconBurger.Checked
dblCost += 4.79
Case rbtBaconCheeseBurger.Checked
dblCost += 5.39
Case Else
dblCost += 0
End Select
Select Case cbxFries.Checked = True
Case rbtSmallFries.Checked
dblCost += 1.29
Case rbtLargeFries.Checked
dblCost += 1.59
Case Else
dblCost += 0
End Select
Select Case cbxDrinks.Checked = True
Case rbtSoda.Checked
dblCost += 1.69
Case rbtWater.Checked
dblCost += 1.49
Case Else
dblCost += 0
End Select
txtCost.Text = FormatCurrency(dblCost)
End Sub
结束类
【问题讨论】:
-
我不确定我是否理解您为什么要测试第一个案例的可见性而其余的案例进行检查。了解正在发生的事情的最佳方法是调试。你知道怎么做吗?
标签: vb.net checkbox visual-studio-2012 radio-button select-case