请帮我解释一下这段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呢?
展开
 我来答
阳光的雷咩咩
2013-10-22 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7780万
展开全部

是类型转换嘛。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里面是比较常用的,你多看多写就会了!
啸明月
2013-10-22 · 超过20用户采纳过TA的回答
知道答主
回答量:42
采纳率:0%
帮助的人:33.3万
展开全部
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,即文本
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
蔡德江
2013-10-22 · TA获得超过3187个赞
知道大有可为答主
回答量:1700
采纳率:0%
帮助的人:1432万
展开全部
panel1.Controls 包含很多控件 比如Lable 是lable类型

同理你这里的C可能不是RadioButton这个类型的控件,就没有Checked这个方法

C is RadioButton 这句是判断循环得到的控件是RadioButton类型。才有Checked这个方法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式