首页 > 解决方案 > 如何检索在所有表单中选择的复选框列表?

问题描述

我正在处理的 GUI 上有大约 20 个复选框,根据选中的复选框,确定我需要的输入。

我知道如何检查复选框是否被选中,并且可以通过这种方式确定输入。

但我不想对所有 20 多个复选框都这样做。

有没有办法获得选中的复选框?

就像是:

string[] ports = new string[3];
ports[] = list_of_checkboxs_that_are_checked;

然后将用户限制为仅选择 3 个,或者多个?

标签: c#winformscheckboxsubsetchecked

解决方案


您可以遍历它们并迭代表单上的控件。

   foreach(Control c in this.Controls)
   {
      if(c is CheckBox)
      {
         // Do stuff here/logic
      }
   }

或者做一个更 LINQ/Lamba-ish 类型的方法

var checkList = YourForm.Controls.OfType<CheckBox>().Where(x => x.Checked).ToList();


checkList.ForEach(x => {
    //Do stuff  here
});

推荐阅读