首先,我想说这是我正在做的家庭作业,但却无法以这种方式工作。所以我必须使用If语句完成作业。目标是构建一个用户可以填写以提交订单的表单。有三个复选框(一个用于汉堡,一个用于薯条,另一个用于饮料)。如果您选中其中一个框,则组框将变为可见,其中包含用于进行所需选择的单选按钮。
我想尝试使用select语句,如果选中了复选框。然后为每个单选按钮使用不同的情况。但是,如果我运行程序并单击我提供的一个按钮,它将填充我的dblCost变量,第一个Case可用。以下是我的代码。我真的想了解我做错了什么,或者这不是解决这个问题的可行方法。以下是我想要使用的代码:
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
结束班
答案 0 :(得分:0)
我认为您对选择案例的理解有点偏差。看看this,看看它是否有帮助。
答案 1 :(得分:0)
虽然它没有专门解决这个问题,但您可能还想考虑一种更短的编写代码的方法:
而不是:
If (cbxBurgers.Checked) Then
gbxBurgers.Visible = True
Else
gbxBurgers.Visible = False
End If
你可以写:
gbxBurgers.Visible = cbxBurgers.Checked
这是一件小事,但它使代码更短。