簡體   English   中英

每個RadioButton觸發事件

[英]firing Event for every RadioButton

我正在使用WinRT應用程序的C#代碼創建一個單選按鈕。

我的代碼:

for(var l = 0; l < 4; l++) {
    RadioButton radio = new RadioButton();
    radio.Checked += (sender,arg)=>{ //sender };
    stackpanel.children.add(radio);
}

現在,我在頁面中添加了這些單選按鈕,我需要知道選中了哪個單選按鈕,但是當event觸發時,僅將最后一個按鈕發送給我。 如何使一個事件的每個按鈕,這樣,當有人檢查Button 1 ,我可以發送一個消息框:“你檢查按鈕1”?

使用CheckChangedEvent。 嘗試在您的for循環中使用它:

     RadioButton radio = new RadioButton();
                 radio.Name = "Button" + l;
                 radio.CheckedChanged += Radio_CheckedChanged; 

然后在觸發事件時執行以下操作:

    /// <summary>
    /// This will trigger all changes to the CheckedState - even unchecking
    /// </summary>
    private void Radio_CheckedChanged(object sender, EventArgs e)
    {
        RadioButton checkedRadioButton = (RadioButton) sender;//Cast the sender of the event back to RadioButton
        if (checkedRadioButton.Checked)//Only do this when checking - not on unchecking
        {
           MessageBox.Show($"You checked {checkedRadioButton.Name}", "Pressed"); 
        }
    }  

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM