Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我可以按ID选择复选框吗?_C#_Winforms_Checkbox - Fatal编程技术网

C# 我可以按ID选择复选框吗?

C# 我可以按ID选择复选框吗?,c#,winforms,checkbox,C#,Winforms,Checkbox,我想选择复选框 不是按设计名称,而是按参数。更具体地说,我想 选中包含数据中的参数的复选框 从数据库中检索 示例代码: (checkBox) C1.checked = true; 这就是我现在设置checked的方法 但是我想做一些像 string[] datas = db.getData(); foreach (string data in datas) { if (data.Equals("C1")) { C1.checked = true; }

我想选择复选框 不是按设计名称,而是按参数。更具体地说,我想 选中包含数据中的参数的复选框 从数据库中检索

示例代码:

(checkBox) C1.checked = true;
这就是我现在设置checked的方法

但是我想做一些像

string[] datas = db.getData();
foreach (string data in datas) 
{
    if (data.Equals("C1")) 
    {
        C1.checked = true;
    }
}
当然,我可以对每个复选框都这样做, 但是有50多个复选框,我认为这很愚蠢 手动选中此复选框,但我找不到基于名称选择特定复选框的方法

此外,如果有人知道如何对文本框进行分组,这将非常有帮助,
这样我就不必每次都循环检查每个复选框。我的意思是在一组复选框中包含一个查找特定复选框的方法。

您可以使用FindControl执行以下操作:

string[] datas = db.getData();
foreach (string data in datas) 
{
    CheckBox chk = this.Controls.Find(data, true).FirstOrDefault() as CheckBox;
   if(chk !=null)
       chk.Checked = true;
}

看起来你的主要目标是找到:

一种对文本框进行分组的方法,这样我就不必在每个文本框上循环 每次都选中复选框

您可以创建一个字符串/复选框字典,并通过这种方式选择复选框

像这样的东西:

string key = "C1";
Dictionary<string, CheckBox> pairs = new Dictionary<string, CheckBox>();
pairs[key].Checked = true;
string key=“C1”;
字典对=新字典();
pairs[key]。选中=true;

它工作得很好。非常感谢你。你的一分钟节省了我的时间,如果不是几天的话。