如何获得一个WinForm控件的IsChecked属性
本文关键字:控件 WinForm IsChecked 属性 一个 何获得 | 更新日期: 2023-09-27 17:49:15
看似简单的问题,却找不到答案。我需要遍历表单上的控件,如果控件是CheckBox,并且被选中,则应该执行某些操作。像这样
foreach (Control c in this.Controls)
{
if (c is CheckBox)
{
if (c.IsChecked == true)
// do something
}
}
但是我无法到达IsChecked属性。
错误是"System.Windows.Forms"。Control'没有包含'IsChecked'的定义,也没有扩展方法'IsChecked'接受类型为'System.Windows.Forms '的第一个参数。Control'可以找到(您是否缺少using指令或程序集引用?)
如何访问这个属性?提前感谢!
编辑
好吧,回答所有问题-我试过cast,它不起作用
你很接近了。您要查找的属性是Checked
foreach (Control c in this.Controls) {
if (c is CheckBox) {
if (((CheckBox)c).Checked == true)
// do something
}
}
您需要将其强制转换为复选框。
foreach (Control c in this.Controls)
{
if (c is CheckBox)
{
if ((c as CheckBox).IsChecked == true)
// do something
}
}
你必须添加一个从Control到CheckBox的强制转换:
foreach (Control c in this.Controls)
{
if (c is CheckBox)
{
if ((c as CheckBox).IsChecked == true)
// do something
}
}
您需要强制转换控件:
foreach (Control c in this.Controls)
{
if (c is CheckBox)
{
if (((CheckBox)c).IsChecked == true)
// do something
}
}
Control类没有定义IsChecked
属性,因此您需要首先将其转换为适当的类型:
var checkbox = c as CheckBox;
if( checkbox != null )
{
// 'c' is a CheckBox
checkbox.IsChecked = ...;
}