WinForm的RadioButton使用小技巧


http://www.cnblogs.com/sjrhero/articles/1883155.html

當多個RadioButton同在一個容器里面的時候,多半的操作都是要得到其中一個的值這個時候我們就沒有必要去為每一個RadioButton寫一個CheckedChange事件,這樣會寫很多代碼,太累了。這個時候我們就可以借住委托來添加一個新的事件,用新的事件代替所有RadioButton的CheckedChange事件。我要實現的要求就是:當選擇中任意一個RadioButton的時候Label17就變成我選擇的RadioButton的Text值

新事件代碼如下:

//RadioButton新事件
public void radioBtn_CheckedChange(object sender, EventArgs e)
{
if (!((RadioButton)sender).Checked)
{
return;
}
string rechargeMoney = string.Empty;
switch (((RadioButton)sender).Text.ToString())
{
case "10":
rechargeMoney = "10";
this.lbl_money_tip.Text = rechargeMoney;
break;
case "20":
rechargeMoney = "20";
this.lbl_money_tip.Text = rechargeMoney;
break;
case "30":
rechargeMoney = "30";
this.lbl_money_tip.Text = rechargeMoney;
break;
case "40":
rechargeMoney = "40";
this.lbl_money_tip.Text = rechargeMoney;
break;
case "50":
rechargeMoney = "50";
this.lbl_money_tip.Text = rechargeMoney;
break;
case "100":
rechargeMoney = "100";
this.lbl_money_tip.Text = rechargeMoney;
break;
default:
break;
}
}

 如何使用這個事件呢?有兩種方法

1、在VS2008中依次選中每一個RadioButton右擊--“屬性”在屬性中找到CheckedChange事件,為其指定為新寫的事件。如下圖:

2、在初始化窗體的時候添加如下代碼:

 

public StartPage()
{
InitializeComponent();
this.radio_Money_10.CheckedChanged += new EventHandler(this.radioBtn_CheckedChange);
this.radio_Money_20.CheckedChanged += new EventHandler(this.radioBtn_CheckedChange);
this.radio_Money_30.CheckedChanged += new EventHandler(this.radioBtn_CheckedChange);
this.radio_Money_40.CheckedChanged += new EventHandler(this.radioBtn_CheckedChange);
this.radio_Money_50.CheckedChanged += new EventHandler(this.radioBtn_CheckedChange);
this.radio_Money_100.CheckedChanged += new EventHandler(this.radioBtn_CheckedChange);
}

到此這個簡單的方法就完成了,讓我少寫了不少的垃圾代碼;可以舉一反三。比如復選框被選中,傳出去一個值等等。這也讓我對委托有了更清晰了理解


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM