2016-06-12 61 views
0

請讓我有一個單選按鈕,我從列表中動態添加(在數據庫讀取時獲得),它顯示正常,但不會觸發檢查更改事件。C# - 單選按鈕檢查更改事件時沒有響應

public void fillradioButton() 
{ 
    for (int i = 0; i < officeLists.Count; i++) 
    { 
     RadioButton rbutton = new RadioButton() 
     { 
      Name = "rbutton", 
      Text = candidate_surname + " " + candidate_name, 
      Left = _RadiobuttonPos.X, 
      Top = _RadiobuttonPos.Y, 
     }; 

     this.Controls.Add(rbutton); 
     _RadiobuttonPos.Y += 25; 
    } 
} 

private void RadioButtonCheckedChanged(object sender, EventArgs e) 
{ 
    MessageBox.Show("Okay I see U");     
} 

如果有任何單選按鈕被選中,我想讓消息框顯示。 謝謝。

回答

2

事件添加到您的單選按鈕,例如:

public void fillradioButton() 
{ 
    for (int i = 0; i < officeLists.Count; i++) 
    { 
     RadioButton rbutton = new RadioButton() 
     { 
      Name = "rbutton", 
      Text = candidate_surname + " " + candidate_name, 
      Left = _RadiobuttonPos.X, 
      Top = _RadiobuttonPos.Y, 
     }; 

     If(i == 0) rbutton.CheckedChanged += RadioButtonCheckedChanged; 

     this.Controls.Add(rbutton); 
     _RadiobuttonPos.Y += 25; 
    } 
} 
+0

另一個問題,'MessageBox.Show(「好吧,我看到U」); '檢查第二個選項時重複兩次,第一個檢查一次。 我需要它只顯示一次,而不考慮所選的選項。謝謝。 – Cuado

+0

嘗試在for循環之外添加這樣的事件:this.Controls [「rbutton」]。CheckedChanged + = RadioButtonCheckedChanged;什麼發生? – JDE

+0

實際上現在用它來試試吧,它是更清潔的解決方案 – JDE

1

您需要將單擊處理程序添加到單選按鈕上的事件。在你初始化單選按鈕後,在循環中的某一點,這樣做:

rbutton.CheckedChanged += new EventHandler(RadioButtonCheckedChanged); 

或者

rbutton.CheckedChanged += RadioButtonCheckedChanged; 

由於要動態地創建按鈕,you need to manually wire up the event handler

+1

感謝你的幫助,'rbutton.CheckedChanged + = RadioButtonCheckedChanged;'幫助。 但是,當檢查第二個選項時,消息框重複兩次,第一個選擇一次。無論選擇何種選項,我都需要顯示一次。謝謝。 – Cuado

相關問題