使用选择语句基于复选框被选中
问题描述:
首先,我想说这是我正在做的一项家庭作业任务,但无法通过这种方式实现。所以我必须使用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
末级
答
虽然没有具体解决的问题,您可能还需要考虑一个较短的方式来编写代码:
不是:
If (cbxBurgers.Checked) Then
gbxBurgers.Visible = True
Else
gbxBurgers.Visible = False
End If
你可以写:
gbxBurgers.Visible = cbxBurgers.Checked
这是一件小事,但它使代码更短。
我不知道我明白你为什么要测试第一种情况的可见性,其余的为检查。了解正在进行的最佳方式是调试。你知道怎么做吗? – 2013-03-27 00:20:10