2013-08-02 60 views
0

如果我有4個不同的複選框,當用戶選擇其中的一個我想其他3成爲殘疾人,所以你不能在一個複選框,單擊而另一個已經選中我怎麼會去這樣做?我有這個,但現在不工作,我想它會:禁用的CheckBox

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

,因爲我想我也可以靜止點擊儘可能多的複選框。感謝您的任何幫助。

+3

我知道這並不直接回答你的問題,但如果你只想允許一個選擇,爲什麼不使用單選按鈕呢? –

+0

我能我甚至沒有真正去想它 – bbesase

+0

你到底想達到什麼目的? 「只檢查一個盒子」應該使用單選按鈕。 「不允許改變主意」應該刪除(不禁用)複選框。你能澄清嗎? – Floris

回答

2

正如@布賴恩已經說過,單選按鈕看起來像是一個更加有機的方式來實現這一結果,但你仍然可以做到這一點與複選框,如果你想

處理的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 
+0

這樣可以在不啓用任何其他功能的情況下取消選中該複選框。混淆十歲上下。 – Ryan

+0

查看更新的答案 – KyleMit