winform实现动态多选框

  1. 创建一个流式布局面板控件
flowchatLayoutPanel
  1. 将API传过来的datatable遍历,创建复选框,将datatable中的数据填充复选框
  for (int i = 0; i < dtJson.Rows.Count; i++)
                {
                    CheckBox processCB = new CheckBox();
                    processCB.Text = dtJson.Rows[i]["ITEM_NAME"].ToString();
                    processCB.Tag = dtJson.Rows[i]["ITEM_NO"].ToString();
                    processCB.AutoSize = true;
                    processCB.Font = new Font("微软雅黑", 13F);
                    processCB.Margin = new Padding(20, 2, 0, 0);
                   this.ProcessPanel.Controls.Add(processCB);
                }
  1. 遍历复选框,将复选框已选的值存入datatable(也可以使用Dictionary<string, string>存储)中,传入API
			//创建局部变量datatable
			DataTable partsDt = new DataTable();
			//给局部变量添加两列
            DataColumn dc1 = new DataColumn("part_no", Type.GetType("System.String"));
            DataColumn dc2 = new DataColumn("part_name", Type.GetType("System.String"));
            partsDt.Columns.Add(dc1);
            partsDt.Columns.Add(dc2);
			//遍历复选框中的值,将已选的值储存在datatable中
            foreach (Control c in this.ProcessPanel.Controls)
            {
                if (c is CheckBox)
                {
                    CheckBox ck = c as CheckBox;
                    if (ck.Checked)
                    {
                        DataRow dr = partsDt.NewRow();
                        dr["part_no"] = ck.Tag.ToString();
                        dr["part_name"] = ck.Text;
                        partsDt.Rows.Add(dr);
                    }
                }
           }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值