读书人

groupbox中多个radiobox的传值有关问题

发布时间: 2012-07-20 10:38:30 作者: rapoo

groupbox中多个radiobox的传值问题
一个groupbox中,有七八个RadioBox,我想顺序点击之,在外面的一个label的Text显示1、2、3、4、5...等顺序的数字

我目前知道就一个一个的RadioBox的Click事件等可以写

但是RadioBox很多,GroupBox也有好几十个,想请问下什么办法可以较为简洁和快速一点来做这件事,谢谢

[解决办法]
所有的RadioBox绑定到同一个click,然参数sender,就是点击的RadioBox,转换用((RadioBox)sender).xxxx,你可以在每个RadioBox的tag中保留1,2,3等,或者用一个变量表示点击顺序
[解决办法]
界面上拖好 RadioBox 之后,在后台代码中绑定事件

C# code
foreach (var it1 in this.Controls){    GroupBox gbx;    if ((gbx = it1 as GroupBox) != null)    {        foreach (var it2 in gbx.Controls)        {            RadioButton rbtn;            if ((rbtn = it2 as RadioButton) != null)            {                rbtn.Click += new EventHandler(rbtn_Click);            }        }    }}private void rbtn_Click(object sender, EventArgs e){    RadioButton rbtn = (RadioButton)sender;    // 界面上设置每个 RadioButton 的 Tag 或 Name 等属性来区分在 label 里显示不同内容}
[解决办法]
第一:

foreach (Control ctrl in groupBox1.Controls)
{
if (ctrl is RadioButton)
{
if (((RadioButton)ctrl).Checked )
{
//添加你需要的操作

}
}
}
第二:

在每个radiobutton里面添加事件

private void radioButton_CheckedChanged(object sender, EventArgs e)
{
RadioButton rb=(RadioButton) sender;
if (rb.Checked)
{
//添加你需要的操作

}
}
[解决办法]
public void radioBtn_CheckedChange(object sender, EventArgs e)
{
if (!((RadioButton)sender).Checked)
{ return; }
string rechargeMoney = string.Empty;
switch (((RadioButton)sender).Text.ToString())
{
case "RadioButton界面显示的名字":
this.lbl_money_tip.Text = rechargeMoney;
break;
default:
break;
}
}

读书人网 >C#

热点推荐