禁用CheckBoxes

时间:2013-08-02 15:33:20

标签: vb.net checkbox

如果我有4个不同的CheckBox,当用户选择其中一个时,我希望其他3个被禁用,这样你就不能点击一个复选框,而另一个已被检查,我将如何进行此操作?我有这个,但它现在不起作用,我认为它会:

    If NoDelayCheckMarkBox.Checked = True Then
        timeBetweenIterationDelay = 0
        SecondDelayCheckMarkBox.Enabled = False
        HalfSecondDelayCheckMarkBox.Enabled = False
        FiftyMSDelayCheckMarkBox.Enabled = False

我仍然可以点击我想要的复选框。谢谢你的帮助。

1 个答案:

答案 0 :(得分:2)

正如@brian所说,单选按钮似乎是一种更有机的方式来实现这个结果,但如果你想要的话,你仍然可以使用复选框

对所有四个复选框使用相同的子句处理CheckBox.CheckedChanged事件

Private Sub CheckBox1_CheckedChanged(sender As System.Object, e As System.EventArgs) _
    Handles CheckBox1.CheckedChanged, CheckBox2.CheckedChanged, CheckBox3.CheckedChanged, CheckBox4.CheckedChanged
    'cast sender
    Dim senderCheck As CheckBox = DirectCast(sender, CheckBox)

    'loop through all checkboxes
    For Each checkbox In {CheckBox1, CheckBox2, CheckBox3, CheckBox4}

        'only apply changes to non-sender  boxes
        If checkbox IsNot senderCheck Then

            'set property to opposite of sender so you can renable when unchecked
            checkbox.Enabled = Not senderCheck.Checked
        End If
    Next
End Sub