请帮我解释一下这段C#关于radiobutton的代码
这是我自己按照网上查的一些东西写的,功能上可以达到自己设想的要求,,就是按键按钮时,可以根据radiobutton选择的不同,显示不一样的radiobutton的text...
这是我自己按照网上查的一些东西写的,功能上可以达到自己设想的要求,,就是按键按钮时,可以根据radiobutton选择的不同,显示不一样的radiobutton的text内容
private void button1_Click(object sender, EventArgs e)
{
foreach (Control C in panel1.Controls)
{
if (C is RadioButton&&((RadioButton)C).Checked )
{
MessageBox.Show(C.Text);
}
}
}
有几个地方还是不明白,radiobutton1,radiobutton2等,是相应的控件,那么这个RadioButton是什么呢?是控件类?这个(RadioButton)C).Checked和radiobutton1.Checked一个道理,但是为什么不能直接用C.checked呢? 展开
private void button1_Click(object sender, EventArgs e)
{
foreach (Control C in panel1.Controls)
{
if (C is RadioButton&&((RadioButton)C).Checked )
{
MessageBox.Show(C.Text);
}
}
}
有几个地方还是不明白,radiobutton1,radiobutton2等,是相应的控件,那么这个RadioButton是什么呢?是控件类?这个(RadioButton)C).Checked和radiobutton1.Checked一个道理,但是为什么不能直接用C.checked呢? 展开
展开全部
是类型转换嘛。RadioButton是继承自Controls的,foreach只能遍历Controls,但是Checked是RadioButton的属性,要经过类型转换才能点出这个属性来。
//using System.Linq;//更简单的写法
private void button1_Click(object sender, EventArgs e)
{
panel1.Controls.OfType<RadioButton>().Where(r => r.Checked).ToList().ForEach(p => { MessageBox.Show(p.Text); });
}
追问
能麻烦你解释一下你这段代码吗?初学CS,这个尖括号,还有=>这个符号等,都不是特别了解
追答
panel1.Controls所有控件,包括textbox,button,当然也包括RadioButton
OfType()筛选出RadioButton类型的
Where(r => r.Checked)筛选出checked==true的,==true省略
ToList().ForEach遍历
p => { 执行代码段
=>这个符号是lamda表达式,是匿名委托,在.net里面是比较常用的,你多看多写就会了!
展开全部
private void button1_Click(object sender, EventArgs e)
{
foreach (Control C in panel1.Controls)
{
if (C is RadioButton&&((RadioButton)C).Checked )
{
MessageBox.Show(C.Text);
}
}
}
这是一个按钮的点击事件
foreach (Control C in panel1.Controls)代表的是遍历Panel1中的控件,就是顺序查找panel1中有的控件
C is RadioButton 判断此次循环拿到的控件是不是RadioButton控件,这里的RadioButton是指控件类型 ((RadioButton)C)是强制转换,将Control控件转换为RadioButton控件
后面的.Checked意思是这个RadioButton是否被选中了
如果选中了,弹窗显示RadioButton的Text,即文本
{
foreach (Control C in panel1.Controls)
{
if (C is RadioButton&&((RadioButton)C).Checked )
{
MessageBox.Show(C.Text);
}
}
}
这是一个按钮的点击事件
foreach (Control C in panel1.Controls)代表的是遍历Panel1中的控件,就是顺序查找panel1中有的控件
C is RadioButton 判断此次循环拿到的控件是不是RadioButton控件,这里的RadioButton是指控件类型 ((RadioButton)C)是强制转换,将Control控件转换为RadioButton控件
后面的.Checked意思是这个RadioButton是否被选中了
如果选中了,弹窗显示RadioButton的Text,即文本
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
panel1.Controls 包含很多控件 比如Lable 是lable类型
同理你这里的C可能不是RadioButton这个类型的控件,就没有Checked这个方法
C is RadioButton 这句是判断循环得到的控件是RadioButton类型。才有Checked这个方法
同理你这里的C可能不是RadioButton这个类型的控件,就没有Checked这个方法
C is RadioButton 这句是判断循环得到的控件是RadioButton类型。才有Checked这个方法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询