【问题标题】:Is there a way to add 2 checkbox choices together to get the sum?有没有办法将 2 个复选框选项加在一起以获得总和?
【发布时间】:2015-03-16 10:37:42
【问题描述】:

我编写了一个程序,用户可以在其中建立自己的电话计划。他们有两个复选框,允许他们将电子邮件和短信添加到他们的计划中。如果他们只想要电子邮件,则需要额外支付 25 美元。如果他们只想要 txt 消息,则需要额外支付 10 美元。如果他们同时选中这两个框,则金额应为 35 美元。 当他们只点击其中一个复选框而不是同时点击两个复选框时,我的代码就可以工作。当用户勾选两者时,它会返回 25 而不是 35。我将包含与以下问题相关的代码部分。

    If chkEmail.Checked = True Then
        dblOptions = 25
    ElseIf chkTxt.Checked = True Then
        dblOptions = 10
    ElseIf chkEmail.Checked = True And chkTxt.Checked = True Then
        dblOptions = 35
    End If

【问题讨论】:

    标签: vb.net checkbox


    【解决方案1】:

    您的代码与If 条件匹配,因此它不会检查任何ElseIf 条件。首先检查两个框将解决此问题(如 jpw 的答案)。

    或者,您可以将支票彼此分开,如下所示:

    dblOptions = 0
    If chkEmail.Checked Then
        dblOptions += 25
    End If
    If chkTest.Checked Then
        dblOptions += 10
    End If
    

    现在有点冗长,但它的优点是,如果您最终有第三种选择,您只需再添加一个 If 语句而不是几个。

    【讨论】:

    • 我也是这样做的,但我不记得 VB 语法,所以我修改了那里的代码:p
    • 是的,我不得不启动 VS 来检查这个语法。 :)
    【解决方案2】:

    您不是说您使用的是什么语言,而是根据语法我猜它可能是 VB.Net?你可以这样做:

    If chkEmail.Checked = True And chkTxt.Checked = True Then
      dblOptions = 35
    ElseIf chkEmail.Checked = True Then
      dblOptions = 25
    ElseIf chkTxt.Checked = True Then
      dblOptions = 10
    End If
    

    【讨论】:

    • 对不起,我忘了添加,但是,是的,它是 VB。您的代码有效!当我将检查两者的代码行移到顶部而不是底部时,代码是否有效?
    • @mike1319 是的,您尝试条件的顺序很重要,在您的示例中,您永远无法到达最后一个 elseif 语句。
    猜你喜欢
    • 2012-07-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-18
    • 2021-05-02
    • 1970-01-01
    • 2021-04-11
    相关资源
    最近更新 更多