如何检索在所有表单中选中的复选框列表?
How to retrieve a list of checkboxes selected among all those of the form?
我正在使用的 GUI 上有大约 20 个复选框,根据选中的复选框,确定我需要的输入。
我知道如何检查复选框是否被选中,并且可以通过这种方式确定输入。
但我不想对所有 20 个以上的复选框都这样做。
有没有办法获得选中的复选框?
类似于:
string[] ports = new string[3];
ports[] = list_of_checkboxs_that_are_checked;
然后限制用户只能选择 3 个,或者任意多个?
您可以遍历它们并迭代表单上的控件。
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
});
假设您将所有复选框都放在同一个容器(表单、面板、组框?)中,那么您可以简单地使用 Linq 表达式来检索所有选中的复选框并将检索限制为仅前三个-
var checks = YourForm.Controls.OfType<CheckBox>().Where(x => x.Checked).Take(3);
foreach(CheckBox chk in checks)
{
.....
}
当然,如果您的复选框在另一种容器中,您应该检查 YourForm 表单的占位符和您的容器名称。
我正在使用的 GUI 上有大约 20 个复选框,根据选中的复选框,确定我需要的输入。
我知道如何检查复选框是否被选中,并且可以通过这种方式确定输入。
但我不想对所有 20 个以上的复选框都这样做。
有没有办法获得选中的复选框?
类似于:
string[] ports = new string[3];
ports[] = list_of_checkboxs_that_are_checked;
然后限制用户只能选择 3 个,或者任意多个?
您可以遍历它们并迭代表单上的控件。
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
});
假设您将所有复选框都放在同一个容器(表单、面板、组框?)中,那么您可以简单地使用 Linq 表达式来检索所有选中的复选框并将检索限制为仅前三个-
var checks = YourForm.Controls.OfType<CheckBox>().Where(x => x.Checked).Take(3);
foreach(CheckBox chk in checks)
{
.....
}
当然,如果您的复选框在另一种容器中,您应该检查 YourForm 表单的占位符和您的容器名称。