我和Hans Passant在一起。首先,這聽起來像是一個你應該重新考慮的設計,讓任何控件與隱藏的控件交互,而這些隱藏的控件不會與其他與之交互的控件顯示出來。我提醒你重新考慮你的設計。
帶着這個免責聲明,當人們不回答我的問題時,我仍然很生氣,他們所做的只是批評我的問題,真的問我'爲什麼要那樣做',或者你不應該這樣做。我的嘗試是給你積極的批評,重新考慮你的設計。 但是我仍然會給你我的問題的最佳答案...
所以我只是將它編碼到每個單選按鈕上的檢查事件。這有點古怪,但我認爲你的設計和你想要做的是(非常)奇怪。
所以每個選中的事件中,你需要首先:測試,目前的(新)檢查值是真實的,不是虛假的,因爲檢查事件觸發這兩個事情發生的時候:當無線電按鈕變爲檢查和時它變得沒有檢查。這有點奇怪,如果你不尋找這個或知道尋找這個。
第二,如果它被選中,那麼我會調用一個單獨的'UncheckRadioButtons'方法,其中一個參數傳遞了剛剛檢查過的單選按鈕。在這個UncheckRadioButtons方法中,我會有一個數組或單選按鈕列表,它包含您只希望其中一個選中的所有單選按鈕,然後爲每個循環遍歷RadioButton中的每個項目列表或數組。在你的循環中,你可以簡單地測試這個單選按鈕是否與傳遞給你的UncheckRadioButtons方法的單選按鈕相同,如果它不是相同的單選按鈕並且它被選中,那麼取消選中該單選按鈕。因此您的UncheckRadioButtons方法將取消選中除傳遞給它的一個RadioButton作爲參數的所有RadioButton。
抱歉,我沒有時間爲您編寫這樣的方法,以便更好地爲您提高我的答案。但我想實際給你一個真實的答案,至少在你的路上幫助你。 :)
此答案:http://stackoverflow.com/a/16239389/491907顯示單選按鈕(實際複選框)的子類的實例,其中一個' GroupName'屬性(類似於WPF)被添加。我沒有嘗試過,但它可能是一個開始。 – pinkfloydx33
與您之前的問題相同。您不能在多個容器中使用AutoCheck屬性。所以你必須將它設置爲False,並編寫代碼將Checked屬性顯式設置爲false。如果你感覺到你在與機器對抗,那麼你是對的,這不是一個好的用戶界面。 –