为了账号安全,请及时绑定邮箱和手机立即绑定

使用 C# 取消选中所有复选框

使用 C# 取消选中所有复选框

C#
蓝山帝景 2022-06-18 17:38:24
我正在尝试编写一个代码,当单击按钮时,它将取消选中表单中的所有复选框。我知道我能做到checkBox1.Checked = false;checkBox2.Checked = false;checkBox3.Checked = false;等等,但我有大约 35 个复选框,所以我希望使用更简单的代码。我一直在网上寻找看起来像这样的东西;foreach (Control cBox in this.Controls){    if (cBox is CheckBox)    {        ((CheckBox)cBox).Checked = false;    }}我希望使用类似的东西,而不是写checkBox1.Checked = false;大约 70 次(因为我有 2 个按钮,这两个按钮都需要做各种事情,然后取消选中所有框。我看到另一个解决方案涉及堆栈面板或某种类型的代码,这些代码看起来更像 Javascript 或 HTML 而不是 C#,并且似乎还涉及将每个 checkBox.Checked 状态写成自己的行,这并没有为我节省任何行代码。任何提示将不胜感激。谢谢大家:)
查看完整描述

2 回答

?
慕容森

TA贡献1853条经验 获得超18个赞

用我的新朋友@HandbagCrab 提供的一些信息回答我自己的问题:


foreach (Control cBox in tabPage1.Controls)

{

if (cBox is CheckBox)

    {

        ((CheckBox)cBox).Checked = false;

    }

}

添加tabPage1修复了我的问题。以前,我一直在使用this.Controlswhich 限制访问仅在该依赖项中的控件。我仍然可以通过将它们单独命名为 来控制基于复选框的其他内容checkBox1.Checked = false;,但这只是因为我按名称调用它们,而不是要求代码查看所有Controls.


查看完整回答
反对 回复 2022-06-18
?
动漫人物

TA贡献1815条经验 获得超10个赞

您可以使用 C# 7.0+ 模式匹配:


foreach(Control control in controls)

{

    if (control is CheckBox chk) chk.Checked = false;

}


查看完整回答
反对 回复 2022-06-18
  • 2 回答
  • 0 关注
  • 285 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号