首先,我想说这是我正在做的一项家庭作业,但无法以这种方式进行。所以我必须使用 If 语句完成分配。目标是构建一个用户可以填写以提交订单的表单。有三个复选框(一个用于汉堡,一个用于薯条,另一个用于饮料)。如果您选中其中一个框,则会显示一个组框,其中包含单选按钮以进行您想要的选择。
我想尝试根据复选框是否被选中来使用 select 语句。然后为每个单选按钮使用不同的大小写。但是,如果我运行程序并单击我提供的一个按钮,它将使用第一个可用的 Case 填充我的 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
结束类