【问题标题】:check if radio button is checked based on if it is enabled根据是否启用检查单选按钮是否被选中
【发布时间】:2017-05-08 16:38:54
【问题描述】:

我正在构建的调查中有很多单选按钮,调查中有代码可以在错过问题时显示消息:

    ElseIf Not (RadioButton237.Checked Or
            RadioButton238.Checked Or
            RadioButton239.Checked Or
            RadioButton240.Checked Or
            RadioButton241.Checked Or
            RadioButton242.Checked Or
            RadioButton243.Checked) Then

        MsgBox("You missed Question 39")

但是,我现在需要在某些情况下将此问题显示为灰色,即:如果组合框选择“否”,则此问题显示为灰色。我希望我的代码中检查遗漏问题的部分在这种情况下忽略这些单选按钮,我试图做这样的事情:

ElseIf ((RadioButton237.enabled = True and RadioButton237.Checked = false) 或 ....然后发消息

但它似乎不起作用。任何建议表示赞赏,我希望我的问题足够清楚。

【问题讨论】:

    标签: vb.net if-statement


    【解决方案1】:

    您可以使用groupbox 对问题的答案进行分组,并在组合框值为“否”或其他任何情况下禁用组合框......因此组合框中的控件也被禁用。

    然后使用GroupBox.IsEnabled 来评估问题。我认为这样你把事情整理好更容易跳过问题。但这只是一个快速提示,可能不是最好的方法。

    【讨论】:

    • 我猜他已经将它们分组在一个容器中(面板、组框等);如果所有单选按钮都直接位于表单上方,则其他单选按钮将无法正常工作。 Bur 你是对的,OP 应该检查容器的状态,而不是单独检查每个单选按钮
    • 感谢您的建议,我能够结合您的建议和以下答案来解决,我喜欢灰色面板与灰色单选按钮的方式,谢谢!跨度>
    • 我确实支持了你,但 b/c 我的声望不到 15,它不会显示,再次感谢!
    【解决方案2】:

    那么你尝试过这样的事情吗?

    Elseif ((radioButton237.enabled and Not radioButton.checked) or (radioButtonXXX.enabled and Not radioButtonXXX.ckecked) or (radioButtonYYY.enabled and Not radioButtonYYY.ckecked)) then
    (...)
    

    【讨论】:

    • 我希望这是答案,但它没有用,我做了 ElseIf ((RadioButton237.Enabled 而不是 RadioButton237.Checked) 或
    • ElseIf (Panel39.Enabled = True And Not (RadioButton237.Checked 或 RadioButton238.Checked 或 RadioButton239.Checked 或 RadioButton240.Checked 或 RadioButton241.Checked 或 RadioButton242.Checked 或 RadioButton243.Checked)) 然后 MsgBox( “你错过了第 39 题”)退出子
    • 我解决了这个问题!谢谢,我确实为你投票,但 b/c 我的声望不到 15,它不会显示,再次感谢!
    • 作为提示,您可以使用“AndAlso”代替“And”以及使用“OrElse”代替“Or”以获得更高的效率 - 这在这里可能无关紧要,但它很好练习进入
    猜你喜欢
    • 2014-02-06
    • 2014-04-23
    • 2014-07-02
    • 1970-01-01
    • 1970-01-01
    • 2016-01-11
    • 2012-06-18
    • 2020-12-04
    • 1970-01-01
    相关资源
    最近更新 更多