【问题标题】:Hide selected checkboxes in form在表单中隐藏选中的复选框
【发布时间】:2017-05-29 10:19:39
【问题描述】:

我有一个关于复选框的小问题。我想隐藏按下按钮时选中的框。

我写了一段类似的代码

foreach (CheckBox button in Controls)
        {
            if (button.Checked == true)
            {
                button.Hide();
            }
        }

它有效,但我得到一个逻辑错误。我该如何解决这个问题?

【问题讨论】:

  • 你得到了什么确切的错误?
  • foreach (Controls 中的Control ctl) { if ( ctl is CheckBox) ctl.Visible = ((Checkbox)ctl).Checked;

标签: c# forms winforms checkbox controls


【解决方案1】:

问题在于控件集合的使用。此集合包含表单容器托管的所有控件。尝试将此集合中的控件直接分配给 CheckBox 会导致转换错误。

因为不是表单中的所有控件都是复选框,所以您只需要将逻辑应用于复选框控件。

OfType IEnumerable extension 很容易

foreach (CheckBox button in this.Controls.OfType<CheckBox>())
{
    if (button.Checked)
        button.Hide();
}

这还有一个好处是允许直接赋值给 CheckBox 类型的变量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-06
    • 2017-06-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多