C# winodw TableLayoutPanel 料盒生产状态UI自动生成
料盒生产状态UI自动生成,效果如下

以前公司项目的这些都是手动拖控件做的。每个设备的料盒数量不一样,层数不一样时都要发好几个小时去改相关细节和代码。上次改了一次。这个又来了。上次就有想法做成根据参数自动生成。但项目时间有限有没有去深入思路和深度。这次发了几个小时加班完成了。
代码:
/// <summary>/// 表头的全选 复选框/// </summary>List<CheckBox> checkBoxAllList = new List<CheckBox>();/// <summary>/// 芯片生产状态标签/// </summary>Label[,] boxMarkContent = new Label[8, 25];//[料盒数量,料盒层数]/// <summary>/// 芯片选中列表/// [料盒索引,层索引]/// </summary>CheckBox[,] boxChipCheckArray = new CheckBox[3, 25];//[料盒数量,料盒层数]/// <summary>/// 初始化 料盒UI/// </summary>private void initBoxUI(){//料盒索引int nBoxIndex = 0;//芯片层 索引int nChipIndex = 0;//AxisTestForm.BOX_COUNT 料盒数量this.tableLayoutPanel2.Controls.Clear();this.tableLayoutPanel2.ColumnStyles.Clear();//清除默认样式 这个很重要this.tableLayoutPanel2.RowStyles.Clear();//清除默认样式 这个很重要this.tableLayoutPanel2.Size = new Size(344, 651);this.tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Absolute, 27F));this.tableLayoutPanel2.ColumnCount = 1 + AxisTestForm.BOX_COUNT * 2;this.tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 35F));//列宽double columnWidth = 100.0 / AxisTestForm.BOX_COUNT;//列索引int columnIndex = 0;//添加列for (int i = 0; i < AxisTestForm.BOX_COUNT; i++){columnIndex++;this.tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, (float)columnWidth));this.tableLayoutPanel2.ColumnStyles.Add(new ColumnStyle(SizeType.Absolute, 30F));Label labelTitle = new Label();labelTitle.Anchor = AnchorStyles.Bottom;labelTitle.Margin = new Padding(4, 0, 4, 0);labelTitle.Name = "lblBoxTitle" + i;//labelTitle.TabIndex = 1;labelTitle.Text = "料盒" + (i + 1);labelTitle.TextAlign = ContentAlignment.MiddleCenter;this.tableLayoutPanel2.Controls.Add(labelTitle, columnIndex, 0);columnIndex++;CheckBox checkBoxAll = new CheckBox();checkBoxAll.Anchor = AnchorStyles.Left;checkBoxAll.AutoSize = true;checkBoxAll.Checked = true;checkBoxAll.CheckState = CheckState.Checked;checkBoxAll.Name = "checkBoxAll" + i;checkBoxAll.Tag = i;checkBoxAll.Size = new Size(24, 21);//checkBoxAll.TabIndex = 3;checkBoxAll.Text = " ";checkBoxAll.UseVisualStyleBackColor = true;checkBoxAll.CheckedChanged += new System.EventHandler(this.checkBoxAll_CheckedChanged);this.tableLayoutPanel2.Controls.Add(checkBoxAll, columnIndex, 0);checkBoxAllList.Add(checkBoxAll);}//行索引int rowIndex = 1;//行高double rowHeight = 100.0 / AxisTestForm.BOX_CHIPSCOUNT;//添加行for (int layerIndex = AxisTestForm.BOX_CHIPSCOUNT; layerIndex > 0; layerIndex--){columnIndex = 0;this.tableLayoutPanel2.RowStyles.Add(new RowStyle(SizeType.Percent, (float)rowHeight));if (layerIndex % 5 == 0){Label labelItemNo = new Label();labelItemNo.AutoSize = true;labelItemNo.BackColor = SystemColors.Control;labelItemNo.Dock = DockStyle.Fill;labelItemNo.Font = new Font("宋体", 10.5F, FontStyle.Regular, GraphicsUnit.Point, ((byte)(134)));labelItemNo.Margin = new Padding(4, 1, 4, 1);labelItemNo.Name = "label_"+ layerIndex;labelItemNo.Size = new Size(27, 18);//labelItemNo.TabIndex = 4;labelItemNo.Text = layerIndex.ToString();labelItemNo.TextAlign = ContentAlignment.MiddleCenter;this.tableLayoutPanel2.Controls.Add(labelItemNo, 0, rowIndex);}nChipIndex = layerIndex - 1;columnIndex++;//根据料盒数量生成对应列for (int i = 0; i < AxisTestForm.BOX_COUNT; i++){Label labelItem = new Label();labelItem.AutoSize = true;labelItem.BackColor = SystemColors.ActiveCaptionText;labelItem.Dock = DockStyle.Fill;labelItem.Margin = new Padding(4, 1, 4, 1);labelItem.Name = "labelItem_" + i + "_" + nChipIndex;//labelItem.TabIndex = 2;labelItem.TextAlign = ContentAlignment.MiddleCenter;this.tableLayoutPanel2.Controls.Add(labelItem, columnIndex, rowIndex);nBoxIndex = i;//芯片生产状态标签对象boxMarkContent[nBoxIndex, nChipIndex] = labelItem;columnIndex++;CheckBox checkBoxItem = new CheckBox();checkBoxItem.Anchor = AnchorStyles.Left;checkBoxItem.AutoSize = true;checkBoxItem.Checked = true;checkBoxItem.CheckState = CheckState.Checked;checkBoxItem.Name = "checkBox" + i + "_" + nChipIndex;checkBoxItem.Size = new Size(24, 14);//checkBoxItem.TabIndex = 3;checkBoxItem.Text = " ";checkBoxItem.UseVisualStyleBackColor = true;checkBoxItem.Enabled = false;this.tableLayoutPanel2.Controls.Add(checkBoxItem, columnIndex, rowIndex);//芯片选中列表boxChipCheckArray[nBoxIndex, nChipIndex] = checkBoxItem;columnIndex++;}rowIndex++;}}
调用:
/// <summary>/// 晶圆盒/// </summary>public WaferAutoForm(){InitializeComponent();initBoxUI();SetUIUserName("OP");}
相关文章:
C# winodw TableLayoutPanel 料盒生产状态UI自动生成
料盒生产状态UI自动生成,效果如下 以前公司项目的这些都是手动拖控件做的。每个设备的料盒数量不一样,层数不一样时都要发好几个小时去改相关细节和代码。上次改了一次。这个又来了。上次就有想法做成根据参数自动生成。但项目时间有限有没有去深入思路和…...
提示词的艺术----AI Prompt撰写指南(个人用)
提示词的艺术 写在前面 制定提示词就像是和朋友聊天一样,要求我们能够清楚地表达问题。通过这个过程,一方面要不断练习提高自己地表达能力,另一方面还要锻炼自己使用更准确精炼的语言提出问题的能力。 什么样的提示词有用? 有…...
哪些前端打印插件可以实现监听用户选择了打印还是取消
在前端实现监听用户是否选择了打印还是取消的功能,确实是一个挑战,因为浏览器的打印行为是通过原生对话框处理的,而这些对话框的行为无法直接被 JavaScript 控制或监听。不过,有一些插件和方法可以帮助你更接近这个目标࿱…...
【PyCharm】连接Jupyter Notebook
【PyCharm】相关链接 【PyCharm】连接 Git【PyCharm】连接Jupyter Notebook【PyCharm】快捷键使用【PyCharm】远程连接Linux服务器【PyCharm】设置为中文界面 【PyCharm】连接Jupyter Notebook PyCharm连接Jupyter Notebook的过程可以根据不同的需求分为 本地连接 和 远程连…...
【Linux系统编程】—— 深入理解Linux中的环境变量与程序地址空间
文章目录 环境变量常见的环境变量查看环境变量环境变量的修改与使用环境变量的组织⽅式环境变量的命令通过代码如何获取环境变量环境变量的继承 前言:在Linux系统中,环境变量和程序地址空间是系统管理和进程运行的重要组成部分。本文将详细探讨环境变量的…...
Spark常见面试题-部分待更新
1. 简述hadoop 和 spark 的不同点(为什么spark更快) Hadoop是一个分布式管理、存储、计算的生态系统,包括HDFS(分布式文件系统)、MapReduce(计算引擎)和YARN(资源调度器)…...
Android BitmapShader实现狙击瞄具十字交叉线准星,Kotlin
Android BitmapShader实现狙击瞄具十字交叉线准星,Kotlin <?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:tools"http://schemas.android.…...
linux通过web向mac远程传输字符串,mac收到后在终端中直接打印。
要通过Web从Linux向Mac远程传输字符串,并在Mac的终端中直接打印,可以使用以下方法。这里假设Linux作为服务器,Mac作为客户端。 方法 1:使用Python的HTTP服务器 在Linux上启动一个简单的HTTP服务器,Mac通过curl获取字符…...
海云安开发者安全智能助手D10荣膺 “ AI标杆产品 ” 称号,首席科学家齐大伟博士入选2024年度 “ 十大杰出青年 ”
2024年12月27日,粤港澳大湾区AI领袖峰会在深圳成功举办,大会表彰了在人工智能技术创新、应用实践和产业发展等方面取得优异成绩的企业和个人,深圳海云安网络安全技术有限公司开发者安全智能助手D10荣膺“AI标杆产品”称号。同时,公…...
Spring Boot + Apache POI 实现 Excel 导出:BOM物料清单生成器(支持中文文件名、样式美化、数据合并)
目录 引言 Apache POI操作Excel的实用技巧 1.合并单元格操作 2.设置单元格样式 1. 创建样式对象 2. 设置边框 3. 设置底色 4. 设置对齐方式 5. 设置字体样式 6.设置自动换行 7. 应用样式到单元格 3. 定位和操作指定单元格 4.实现标签-值的形式 5.列宽设置 1. 设…...
ReactiveSwift 简单使用
记录 ReactiveSwift 简单使用 导入 ReactiveSwift 库创建 TestViewModel 文件 enum JKTypeType: Int {case cloudcase devicecase weater }// 通过监听属性变化 class TestViewModel: NSObject {lazy var recordType: Property<JKTypeType> {return Property(recordTy…...
CSS 的基础知识及应用
前言 CSS(层叠样式表)是网页设计和开发中不可或缺的一部分。它用于描述网页的视觉表现,使页面不仅实现功能,还能提供吸引人的用户体验。本文将介绍 CSS 的基本概念、语法、选择器及其在提升网页美观性方面的重要性。 什么是 CSS&…...
【Web】2025西湖论剑·中国杭州网络安全安全技能大赛题解(全)
目录 Rank-l Rank-U sqli or not Rank-l username存在报错回显,发现可以打SSTI 本地起一个服务,折半查找fuzz黑名单,不断扔给fenjing去迭代改payload from flask import Flask, request, render_template_stringapp Flask(__name__)app…...
能源物联网数据采集设备 串口服务器功能参数介绍
摘要 随着物联网技术的快速发展,各种传统设备的联网需求愈发迫切。串口服务器作为一种桥接传统串口设备与现代网络的关键设备,在工业控制、智能电网、交通运输等域发挥了重要作用。本文以APort100串口服务器为例,探讨串口服务器在现代物联…...
在线json格式化工具
在线json格式化工具,包括中文和英文版本,无需登录,无需费用,用完就走。 官网地址: https://json.openai2025.com 效果如下:...
OSPF的LSA的学习研究
OSPF常见1、2、3、4、5、7类LSA的研究 1、拓扑如图,按照地址表配置,激活OSPF划分相关区域并宣告相关网段 2、1类LSA,每台运行了OSPF的路由器都会产生,描述了路由器的直连接口状况和cost 可以看到R1产生了一条router lsa࿰…...
1166 Summit (25)
A summit (峰会) is a meeting of heads of state or government. Arranging the rest areas for the summit is not a simple job. The ideal arrangement of one area is to invite those heads so that everyone is a direct friend of everyone. Now given a set of tenta…...
AUTOSAR从入门到精通-【自动驾驶】高精地图(四)
目录 前言 现状概述 算法原理 高精地图的构成 A.基础地图层 B.几何地图层 C.语义地图层 D.道路连接层 E.先验地图层 F.实时地图数据 高精地图的构建及维护 移动建图系统 高精地图维护 A.地图变换检测 B.地图数据更新 3. 众包建图 3.1 众包建图的优劣势 3.2 众包起源:M…...
MySQL8数据库全攻略:版本特性、下载、安装、卸载与管理工具详解
大家好,我是袁庭新。 MySQL作为企业项目中的主流数据库,其5.x和8.x版本尤为常用。本文将详细介绍MySQL 8.x的特性、下载、安装、服务管理、卸载及管理工具,旨在帮助用户更好地掌握和使用MySQL数据库。 1.MySQL版本及下载 企业项目中使用的…...
网络安全---CMS指纹信息实战
CMS简介 CMS(Content Management System)指的是内容管理系统,如WordPress、Joomla等。CMS系统非常常见,几乎所有大型网站都使用CMS来管理其网站的内容。由于常见CMS的漏洞较多,因此黑客将不断尝试利用这些漏洞攻击CMS…...
龙虎榜——20250610
上证指数放量收阴线,个股多数下跌,盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型,指数短线有调整的需求,大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的:御银股份、雄帝科技 驱动…...
【Go】3、Go语言进阶与依赖管理
前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课,做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程,它的核心机制是 Goroutine 协程、Channel 通道,并基于CSP(Communicating Sequential Processes࿰…...
ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...
Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信
文章目录 Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket(服务端和客户端都要)2. 绑定本地地址和端口&#x…...
深度学习水论文:mamba+图像增强
🧀当前视觉领域对高效长序列建模需求激增,对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模,以及动态计算优势,在图像质量提升和细节恢复方面有难以替代的作用。 🧀因此短时间内,就有不…...
push [特殊字符] present
push 🆚 present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中,push 和 present 是两种不同的视图控制器切换方式,它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...
Webpack性能优化:构建速度与体积优化策略
一、构建速度优化 1、升级Webpack和Node.js 优化效果:Webpack 4比Webpack 3构建时间降低60%-98%。原因: V8引擎优化(for of替代forEach、Map/Set替代Object)。默认使用更快的md4哈希算法。AST直接从Loa…...
苹果AI眼镜:从“工具”到“社交姿态”的范式革命——重新定义AI交互入口的未来机会
在2025年的AI硬件浪潮中,苹果AI眼镜(Apple Glasses)正在引发一场关于“人机交互形态”的深度思考。它并非简单地替代AirPods或Apple Watch,而是开辟了一个全新的、日常可接受的AI入口。其核心价值不在于功能的堆叠,而在于如何通过形态设计打破社交壁垒,成为用户“全天佩戴…...
Linux系统部署KES
1、安装准备 1.版本说明V008R006C009B0014 V008:是version产品的大版本。 R006:是release产品特性版本。 C009:是通用版 B0014:是build开发过程中的构建版本2.硬件要求 #安全版和企业版 内存:1GB 以上 硬盘…...
Spring AI Chat Memory 实战指南:Local 与 JDBC 存储集成
一个面向 Java 开发者的 Sring-Ai 示例工程项目,该项目是一个 Spring AI 快速入门的样例工程项目,旨在通过一些小的案例展示 Spring AI 框架的核心功能和使用方法。 项目采用模块化设计,每个模块都专注于特定的功能领域,便于学习和…...
