我对复选框有一点问题。我想要隐藏按下按钮时选中的框。
我写了一段像
这样的代码foreach (CheckBox button in Controls)
{
if (button.Checked == true)
{
button.Hide();
}
}
它有效,但我遇到了逻辑错误。我该如何解决这个问题?
答案 0 :(得分:3)
问题是使用Controls集合。此集合包含表单容器托管的所有控件。尝试将此集合中的控件直接分配给CheckBox会导致转换错误。
由于表单中并非所有控件都是复选框,因此您只需将逻辑应用于复选框控件。
使用OfType IEnumerable extension
很容易foreach (CheckBox button in this.Controls.OfType<CheckBox>())
{
if (button.Checked)
button.Hide();
}
这也有利于直接分配给CheckBox类型的变量。