2012-03-15 56 views
1

我想更改我的表單上的單選按鈕時註冊用戶輸入,但顯然它也會觸發程序更改,我認爲我可以通過使用布爾值來解決此問題,但以下方式有效:過濾用戶對單選按鈕的更改?

此刻我有兩個單選按鈕被鏈接,當一個被觸發時觸發另一個。當更改單個單選按鈕時,在調用兩個方法時過濾輸入的最簡單方法是什麼?

+0

你是什麼意思「過濾器輸入」的?看起來您需要忽略程序化更改,並且只響應用戶觸發的更改。 – 2012-03-15 18:49:27

+1

有沒有一些代碼?你可以發佈嗎? – 2012-03-15 18:49:34

回答

2

你可以嘗試添加處理後您設置控件的值:

public Form1() { 
    InitializeComponent(); 

    radioButton1.Checked = true; 
    radioButton1.CheckedChanged += new EventHandler(radioButton_CheckedChanged); 
    radioButton2.CheckedChanged += new EventHandler(radioButton_CheckedChanged); 
} 

private void radioButton_CheckedChanged(object sender, EventArgs e) { 
    RadioButton rb = (RadioButton)sender; 
    if (rb.Checked) 
    MessageBox.Show("User checked " + rb.Text); 
} 
+0

謝謝,但我經常更改複選框,我不想每次都註冊事件處理程序。 – JamieB 2012-03-15 19:42:56

+0

@JamieB也許我很困惑的描述*當我更改單個單選按鈕*時,這兩種方法都被調用。是的,正在「取消選中」的單選按鈕也正在調用其「CheckChanged」事件。在這種情況下,您可以通過查看是否檢查發件人來篩選「事件」。在我的示例代碼中,兩個單選按鈕都調用了該事件,但由於'if'條件,只有一個MessageBox正在顯示。 – LarsTech 2012-03-15 19:52:45

+0

啊,道歉拉爾斯,我只是在現實中解決了這個問題。謝謝。 – JamieB 2012-03-15 20:18:25