如何从动态创建的 CheckBox 中获取选定的值?

Posted

技术标签:

【中文标题】如何从动态创建的 CheckBox 中获取选定的值?【英文标题】:How do I get the selected Value from dynamically created CheckBox? 【发布时间】:2021-10-27 00:55:12 【问题描述】:

我将 CheckBox 控件从数据库动态添加到 FlowLayOutPanel。如何获取和存储所有选定的值?

我的示例代码在这里...

private void dynamicCheck()

    //throw new NotImplementedException();
    DataSet1TableAdapters.tbl_subjects1TableAdapter ta = 
        new DataSet1TableAdapters.tbl_subjects1TableAdapter();
    DataTable dt = ta.GetData();
    foreach (DataRow row in dt.Rows)
    
        CheckBox chk = new CheckBox();
        chk.Width = 90;
        chk.Text = row[1].ToString();
        chk.CheckedChanged += new 
                          EventHandler(changeCheck);
        flowLayoutPanel1.Controls.Add(chk);            
    
   

private void changeCheck(object sender, EventArgs e)

    //throw new NotImplementedException();
    CheckBox chk = sender as CheckBox;
    if (chk.Checked)
    
        //MessageBox.Show("checked item" + chk.Text);        
    


private void buttonSave_Click(object sender, EventArgs e)


【问题讨论】:

困难、问题或错误是什么?问题是什么?你想让我做什么?保存什么?在哪里?如何?你问像MyPanel.Controls.OfType<CheckBox>().Where(Checked)这样的东西吗? How do I ask a good question • What topics can I ask about here? • What types of questions should I avoid asking? • Writing the perfect question 抱歉这个问题。我想获取 checkBox 检查值并存储为列表,并为列表的每个值创建 sql 插入查询。 【参考方案1】:

我会这样做:

private List<CheckBox> _checkBoxes = null;

private void DynamicCheck()

    DataSet1TableAdapters.tbl_subjects1TableAdapter ta =
        new DataSet1TableAdapters.tbl_subjects1TableAdapter();
    DataTable dt = ta.GetData();
    
    _checkBoxes = dt.Rows.Cast<DataRow>().Select(row =>
    
        CheckBox chk = new CheckBox();
        chk.Width = 90;
        chk.Text = row[1].ToString();
        chk.CheckedChanged += new EventHandler(changeCheck);
        flowLayoutPanel1.Controls.Add(chk);
        return chk;
    ).ToList();

现在您可以访问_checkBoxes 中的每个CheckBox

【讨论】:

以上是关于如何从动态创建的 CheckBox 中获取选定的值?的主要内容,如果未能解决你的问题,请参考以下文章

动态创建单选按钮并分配选定的值 PHP

ztree中如何获得选中的checkbox的值

如何在 WPF CheckBox ListBox 中获取选定项目

在 HTML 表中获取整个选定的列值

JSP中如何获取radio 或checkbox的值

如何从 DevExpress LookupEdit 中获取选定的值?