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);
相关推荐
白帽攻防录2 小时前
SRC 挖洞:PostScript 打印机驱动双 RCE,打印服务器怎么变成内网跳板
开发语言·网络安全·php·内网安全
十年Java程序媛2 小时前
Java枚举Enum完整教程|替代静态常量,开发与面试要点
java·开发语言·spring boot·后端·面试
2603_965148112 小时前
电商选品调研:通过关键词搜索API获取市场热销商品,结合商品详情API分析竞品卖点与定价
开发语言·数据库·人工智能·python·信息可视化
xixiaoyunya3 小时前
Python 异步编程入门:用 asyncio 轻松实现并发任务
开发语言·python·php
学逆向的3 小时前
C 循环结构的执行效率分析
c语言·开发语言·数据结构·网络安全
小坏讲微服务4 小时前
刚发布一个月的JDK 27,为什么我建议你立刻升级?
java·开发语言·spring boot·spring·架构·求职招聘·springboot4
打工仔折腾 AI5 小时前
用 Dashlet 把极空间 NAS 服务入口整理成统一导航首页的实践
java·开发语言·人工智能·后端·python·rpc·ai agent 实战
MATLAB代码顾问5 小时前
Simulink PI 参数扫描与批量仿真完整 MATLAB 代码
开发语言·matlab
Want5956 小时前
Python跳动的爱心②
开发语言·python·数学建模
小羊没烦恼!7 小时前
T-SQL查询进阶--理解SQL SERVER中的分区表
服务器·开发语言·前端·javascript·html