c# windows 动态生成CheckBox控件

最近有一个客户要求Mapping的打标标是00-99中可选的方式。由于控件有点多,我不想手动去拖100个控件。所以想到了动态添加。

效果图

代码

复制代码
/// <summary>
        /// 生成 CheckBox
        /// </summary>
        /// <param name="panel"></param>
        /// <param name="count"></param>
        private void GenerateCheckBox(Panel panel, int count)
        {
            panel.Controls.Clear();
            int startIntervalX = 10;
            int startIntervalY = 10;
            int rowIndex = 0;
            int colIndex = 0;
            for (int i = 0; i < count; i++)
            {
                //过滤不打标的
                if (!CommonDefine.MappingNotMarkStr.Contains(i.ToString("00")))
                {
                    var chkObj = new CheckBox();
                    chkObj.Text = i.ToString("00");
                    chkObj.Tag = i.ToString("00");
                    chkObj.Width = 40;
                    chkObj.Height = 20;
                    //判断是否已选择 打标的
                    chkObj.Checked = CommonDefine.MappingMarkStr.Contains(chkObj.Text);
                    chkObj.Click += ChkObj_Click;
                    chkObj.Location = new Point(colIndex * chkObj.Width + startIntervalX,
                                                rowIndex * chkObj.Height + startIntervalY);
                    panel.Controls.Add(chkObj);
                    colIndex++;
                    if (colIndex == 10)
                    {
                        colIndex = 0;
                        rowIndex++;
                    }
                }
            }
        }

        private void ChkObj_Click(object sender, EventArgs e)
        {
            var checkBox = (sender as CheckBox);
            if (checkBox.Checked)
            {
                //将用户的选择记录并保存到配置中
                CommonDefine.MappingMarkStr += checkBox.Text + ",";
            }
        }

调用

复制代码
GenerateCheckBox(this.panelMappingMark, 100);
相关推荐
再__努力1点22 分钟前
【68】颜色直方图详解与Python实现
开发语言·图像处理·人工智能·python·算法·计算机视觉
Jinkxs28 分钟前
Java 架构 02:DDD 领域模型设计实战(限界上下文划分)
java·开发语言·架构
毕设源码-钟学长1 小时前
【开题答辩全过程】以 基于PHP的家常菜谱教程网站为例,包含答辩的问题和答案
开发语言·php
消失的旧时光-19431 小时前
用 C 实现一个简化版 MessageQueue
c语言·开发语言
小鹿学程序1 小时前
jdk配置完之后java -version还是默认的jdk版本如何更改
java·开发语言·python
至善迎风1 小时前
Bun:下一代 JavaScript 运行时与工具链
开发语言·javascript·ecmascript·bun
她说彩礼65万1 小时前
C# 反射
java·算法·c#
程序员-King.1 小时前
【Qt开源项目】— ModbusScope-day 5
开发语言·qt
老秦包你会1 小时前
QT第五课------QT系统相关------线程
开发语言·qt
lkbhua莱克瓦241 小时前
IO练习——网络爬虫(爬取数据)
java·开发语言·爬虫·io流练习·java练习