【问题标题】:Using a Select Statement Based on Check Box Being Checked使用基于选中复选框的 Select 语句
【发布时间】: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


【解决方案1】:

我认为您对选择案例的理解有点偏离。看看this 看看它是否有帮助。

【讨论】:

  • 我认为这很完美。非常感谢!
【解决方案2】:

虽然它没有专门解决这个问题,但您可能还想考虑一种更短的方法来编写代码:

而不是:

If (cbxBurgers.Checked) Then
    gbxBurgers.Visible = True
Else
    gbxBurgers.Visible = False
End If

你可以写:

gbxBurgers.Visible = cbxBurgers.Checked

这是一件小事,但它使代码更短。

【讨论】:

    猜你喜欢
    • 2013-04-25
    • 2013-10-06
    • 2012-02-08
    • 2013-01-23
    • 2019-01-03
    • 2021-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多