尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
质检第三版代码只保留图层与类型
优化后的完整 QCItemConfigForm.cs四个改动点全部处理:自适应缩放:主容器TableLayoutPanel全部Dock=Fill,行高用百分比分配,CheckedListBox 在各自面板里Dock=Fill,窗口拉大控件跟着大去掉排除图层:公共区只剩「检查图层」+「实体类型」两块图层控件占比加大:公共区高度从140提到200,图层CheckedListBox高度120全选/反选 + 显示上次配置:图层区加「全选」「反选」两个小按钮把上次保存的图层名合并进当前DWG图层列表(DWG里没有的也显示出来,用红色字标记),这样上次选了什么一目了然using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Windows.Forms; using Newtonsoft.Json; using ZwSoft.ZwCAD.DatabaseServices; using ZwSoft.ZwCAD.ApplicationServices; namespace PipeQC.UI { public partial class QCItemConfigForm : Form { private QCItemMeta _meta; private QCUserConfig _oldUserCfg; private Dictionarystring, object _userParamDict; public QCUserConfig ResultUserConfig { get; private set; } //公共区控件 private CheckedListBox _chkLayers; private CheckedListBox _chkEntityTypes; //记录哪些图层名来自上次配置但当前DWG不存在,用于红色显示 private HashSetstring _layersNotInDwg = new HashSetstring(); //动态控件缓存 private Dictionarystring, Control _dynamicControlMap = new Dictionarystring, Control(); public QCItemConfigForm(QCItemMeta meta, QCUserConfig userCfg) { _meta = meta; _oldUserCfg = userCfg; this.Text = $"{meta.ItemShowName} 参数配置"; this.Size = new System.Drawing.Size(520, 560); this.MinimumSize = new System.Drawing.Size(480, 480); this.StartPosition = FormStartPosition.CenterParent; _userParamDict = JsonConvert.DeserializeObjectDictionarystring, object(userCfg.UserParamJson); // ========== 主容器:TableLayoutPanel,Dock=Fill,自适应 ========== var mainPanel = new TableLayoutPanel(); mainPanel.Dock = DockStyle.Fill; mainPanel.RowCount = 3; mainPanel.ColumnCount = 1; // 第0行:公共区(图层+实体类型),占60% // 第1行:动态业务参数区,占40% // 第2行:底部按钮,固定45 mainPanel.RowStyles.Add(new RowStyle(SizeType.Percent, 60F)); mainPanel.RowStyles.Add(new RowStyle(SizeType.Percent, 40F)); mainPanel.RowStyles.Add(new RowStyle(SizeType.Absolute, 45F)); mainPanel.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 100F)); this.Controls.Add(mainPanel); // ---------- 公共区 ---------- var panelCommon = new Panel(); panelCommon.Dock = DockStyle.Fill; BuildCommonArea(panelCommon); mainPanel.Controls.Add(panelCommon, 0, 0); // ---------- 动态参数区 ---------- var panelDynamic = new Panel(); panelDynamic.Dock = DockStyle.Fill; var flpDynamic = new FlowLayoutPanel(); flpDynamic.Dock = DockStyle.Fill; flpDynamic.FlowDirection = FlowDirection.TopDown; flpDynamic.WrapContents = false; flpDynamic.AutoScroll = true; BuildDynamicParamArea(flpDynamic); panelDynamic.Controls.Add(flpDynamic); mainPanel.Controls.Add(panelDynamic, 0, 1); // ---------- 底部按钮 ---------- var btnPanel = new FlowLayoutPanel(); btnPanel.Dock = DockStyle.Fill; btnPanel.FlowDirection = FlowDirection.RightToLeft; btnPanel.Padding = new Padding(0, 6, 8, 0); var btnSave = new Button() { Text = "保存", Width = 90, Height = 28 }; var btnReset = new Button() { Text = "重置默认", Width = 90, Height = 28 }; var btnCancel = new Button() { Text = "取消", Width = 90, Height = 28 }; btnSave.Click += (s, e) = { CollectControlValue(); this.DialogResult = DialogResult.OK; ResultUserConfig = _oldUserCfg; ResultUserConfig.UserParamJson = JsonConvert.SerializeObject(_userParamDict, Newtonsoft.Json.Formatting.Indented); this.Close(); }; btnReset.Click += (s, e) = { //重置为元数据默认JSON _userParamDict = JsonConvert.DeserializeObjectDictionarystring, object(_meta.DefaultJson); //重建整个界面 mainPanel.Controls.Clear(); panelCommon.Controls.Clear(); BuildCommonArea(panelCommon); panelDynamic.Controls.Clear();
RELATED

相关推荐

XRD图像分析

XRD图像分析

XRD 物相鉴定👉 这是整篇论文故事的起点XRD 图谱解读(这是 MgB₂体系的 X 射线衍射图)1. 横轴:2 Theta(2θ,单位:度 Degree)2θ 入射 X 射线和衍射 X 射线之间的夹角,是…

📅 2026/10/8 7:15:18
HarmonyOS 7 ArkTS:组合优惠税额拆分与发票总额守恒

HarmonyOS 7 ArkTS:组合优惠税额拆分与发票总额守恒

这次不是讨论“0.1 0.2”的老问题,而是复盘一张真实会卡住结算的含税订单:三件商品共享 37.40 元优惠,逐行税额都正确,汇总时却差了 1 分。Demo 名为 InvoiceBalance,核对单号固定为 INV-1002-0310。一、一分钱没有丢…

📅 2026/10/8 7:15:18
落砂试验装置/落砂耐磨试验机

落砂试验装置/落砂耐磨试验机

落砂试验装置 LSK-TLS1|头盔护目镜镜片耐磨性能测试设备1 设备简介朗斯科落砂试验装置 LSK-TLS1,主要用于头盔护目镜、透明镜片类零部件表面耐磨性能试验,行业内常称为头盔护目镜落砂试验机、护目镜耐磨测试仪。 本设备按照 GB 811、GB/T 244…

📅 2026/10/8 7:15:18
MORE NEWS

更多资讯

📰

996引擎-WPS公式:自定义公式 format 模板字符串(支持颜色 四则混合运算)

996引擎-WPS公式:自定义公式 format 模板字符串【支持颜色 & 四则混合运算】 自定义公式 format 基础版 1. 支持语法对照表 2. 补充规则说明 3. 最终验证用例(全覆盖) 自定义公式 format 对应的显示预览颜色版本 自定义公式 format 支持颜色,支持自定义占位符 v202609x…

📰

事件委托实战:用 30 行代码实现可排序表格(zh.javascript.info 教程任务解析)

文档教程前端 【免费下载链接】zh.javascript.info 现代 JavaScript 教程(The Modern JavaScript Tutorial),以最新的 ECMAScript 规范为基准,通过简单但足够详细的内容,为你讲解从基础到高阶的 JavaScript 相关知识。…

📰

Midway 标签组件 @midwayjs/tags 使用指南:从内存到 MySQL 的通用标签系统实战

后端微服务云原生 【免费下载链接】midway 🍔 A Node.js Serverless Framework for front-end/full-stack developers. Build the application for next decade. Works on AWS, Alibaba Cloud, Tencent Cloud and traditional VM/Container. Super easy integrate w…

📰

k0s 节点重装指南:通过 k0sctl 迁移 containerd data-dir 并将节点重新接入集群

云原生容器编排边缘计算 【免费下载链接】k0s k0s - The Zero Friction Kubernetes 项目地址: https://gitcode.com/gh_mirrors/k0/k0s 点击查看 免费下载 本指南讲解如何借助 k0sctl 对集群中的节点执行"重装(reinstall)"&#x…

📰

AlgoNote 算法通关手册:LeetCode 343 整数拆分——动态规划五步法经典题解

教程文档知识库 【免费下载链接】AlgoNote ⛽️「算法通关手册」:从零开始的「算法与数据结构」学习教程,200 道「算法面试热门题目」,1000 道「LeetCode 题目解析」,持续更新中! 项目地址: https://gitcod…

📰

90DaysOfDevOps Day 83:Grafana 数据可视化实战——基于 kube-prometheus 与 Prometheus Operator 部署监控面板

文档/教程 【免费下载链接】90DaysOfDevOps This repository started out as a learning in public project for myself and has now become a structured learning map for many in the community. We have 3 years under our belt covering all things DevOps, including Pri…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬