如果我有4个不同的CheckBox,当用户选择其中一个时,我希望其他3个被禁用,这样你就不能点击一个复选框,而另一个已被检查,我将如何进行此操作?我有这个,但它现在不起作用,我认为它会:
If NoDelayCheckMarkBox.Checked = True Then
timeBetweenIterationDelay = 0
SecondDelayCheckMarkBox.Enabled = False
HalfSecondDelayCheckMarkBox.Enabled = False
FiftyMSDelayCheckMarkBox.Enabled = False
我仍然可以点击我想要的复选框。谢谢你的帮助。
答案 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