C# CAD交互界面-模态窗体与非模态窗体调用方式
运行环境Visual Studio 2022 c# cad2016

一、模态窗体调用方式:
当一个模态窗体打开时,它会阻塞主窗体的所有输入,直到关闭该模态窗体为止。例如,弹出一个对话框让用户必须完成某些操作后才能继续使用主程序。
[CommandMethod("Caidan")]
public void Caidan()
{ShowModalLayerSelectionForm();//模态窗体}
//模态窗体private void ShowModalLayerSelectionForm(){using (var layerForm = new Form1()){DialogResult result = layerForm.ShowDialog(); // 使用ShowDialog()方法打开模态窗体if (result == DialogResult.OK || result == DialogResult.Yes) // 根据需要处理结果{// 处理用户选择图层的操作...}}}
二、非模态窗体调用方式:
非模态窗体打开时,用户可以同时与主窗体和其他非模态窗体进行交互。通常用作工具栏、辅助信息显示窗口等。
[CommandMethod("Caidan")]
public void Caidan()
{Form1 选择图层 = new Form1(); //非模态窗体选择图层.Show();
}
三、窗体程序
this.MaximizeBox = false;this.MinimizeBox = false;// 初始化DataGridViewDataGridView dataGridView = new DataGridView();// 创建一个新的DataGridView控件实例dataGridView.AllowUserToAddRows = false;// 禁止用户通过DataGridView界面直接添加新行dataGridView.AllowUserToDeleteRows = false;// 禁止用户通过DataGridView界面删除现有行dataGridView.BackgroundColor = Color.White;// 设置DataGridView的背景颜色为白色dataGridView.CellBorderStyle = DataGridViewCellBorderStyle.Single;// 设置单元格边框样式为单线边框dataGridView.DefaultCellStyle.SelectionBackColor = Color.LightBlue;// 设置选中单元格时的背景色为浅蓝色dataGridView.DefaultCellStyle.SelectionForeColor = Color.Black;// 设置选中单元格时的前景色(文本颜色)为黑色// 添加图层名称列DataGridViewTextBoxColumn layerNameColumn = new DataGridViewTextBoxColumn();layerNameColumn.HeaderText = "图层名称";layerNameColumn.ReadOnly = true;dataGridView.Columns.Add(layerNameColumn);// 假设GetLayerList返回CAD图层的名称列表//List<string> layerNames = GetLayerList();foreach (LayerTableRecord layer in GetLayerList()){dataGridView.Rows.Add(layer.Name);}// 添加DataGridView到窗体this.Controls.Add(dataGridView);dataGridView.Dock = DockStyle.Fill;dataGridView.CellDoubleClick += DataGridView_CellDoubleClick;
}private void DataGridView_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{if (sender is DataGridView dgv && e.RowIndex >= 0) // 检查是否在有效的行上双击{string selectedLayerName = dgv.Rows[e.RowIndex].Cells[0].Value.ToString(); // 获取选中的图层名称// 处理双击选定图层的逻辑MessageBox.Show($"双击了图层:{selectedLayerName}");// 根据需求执行其他操作...}
}private IEnumerable<LayerTableRecord> GetLayerList()
{List<LayerTableRecord> layers = new List<LayerTableRecord>();using (Transaction tr = HostApplicationServices.WorkingDatabase.TransactionManager.StartTransaction()){LayerTable layerTable = (LayerTable)tr.GetObject(HostApplicationServices.WorkingDatabase.LayerTableId, OpenMode.ForRead);foreach (ObjectId id in layerTable){LayerTableRecord layer = (LayerTableRecord)tr.GetObject(id, OpenMode.ForRead);layers.Add(layer);}tr.Commit();}return layers;
}
//感谢大家的点赞,收藏,转发,关注
相关文章:
C# CAD交互界面-模态窗体与非模态窗体调用方式
运行环境Visual Studio 2022 c# cad2016 一、模态窗体调用方式: 当一个模态窗体打开时,它会阻塞主窗体的所有输入,直到关闭该模态窗体为止。例如,弹出一个对话框让用户必须完成某些操作后才能继续使用主程序。 [CommandMethod(&q…...
19个Web前端交互式3D JavaScript框架和库
JavaScript (JS) 是一种轻量级的解释(或即时编译)编程语言,是世界上最流行的编程语言。JavaScript 是一种基于原型的多范式、单线程的动态语言,支持面向对象、命令式和声明式(例如函数式编程&am…...
PaddleSeg分割框架解读[01] 核心设计解析
文章目录 PaddleSeg分割框架解读[01] 核心设计解析tools/train.pypaddleseg/cvlibs/config.pypaddleseg/cvlibs/builder.pypaddleseg/cvlibs/manager.pyPaddleSeg分割框架解读[01] 核心设计解析 tools/train.py import argparse import random import numpy as np import cv2…...
新鲜出炉:小巧优雅的 css-in-js库StyledFc
StyledFc 一个简单的运行时css-in-js库,用于封装react组件 零依赖非常小,< 3kb.运行时生成css支持css变量支持类似less的嵌套css样式支持props动态css支持typescript 演示 安装 pnpm add styledfc # or npm install styledfc # or yarn add styl…...
Python编程实验四:函数的使用
目录 一、实验目的与要求 二、实验内容 三、主要程序清单和程序运行结果 第1题 第2题 第3题 第4题 第5题 四、实验结果分析与体会 一、实验目的与要求 (1)通过本次实验,学生应掌握函数的定义与调用的基本语法,能根据需要…...
SVN服务备份
hotcopy备份 window批处理 保存以下内容到svn_buckup.bat,确保内容的路径正确,最后双击bat文件进行备份即可 echo offrem SVN安装路径 set svn"C:\Program Files\VisualSVN Server\bin"rem 仓库根目录 set homeE:\Repositories\WorkSpacere…...
FIDO2入门以及相关概念 Client to Authenticator Protocol
本文根据官方文档的定义以及我疑惑的问题做出的相关整理的问答,可能会有偏差,请以官网为准。 官网文档网址:Client to Authenticator Protocol (CTAP) FIDO是什么 FIDO(Fast Identity Online)是一组开放标准和…...
Linux系统入门:嵌入式系统的操作系统选型
(本文为简单介绍,内容来源网络和AI模型生成) Linux是一种开源的操作系统,它建立在Unix操作系统的基础之上,采用了Unix的很多理念和设计思想。与商业操作系统如Windows相比,Linux系统资源占用少,运行高效稳定,且Linux系统免费开源,使用和传播…...
数据结构——时间复杂度
前言: 当谈到数据结构和算法时,时间复杂度是一个至关重要的概念。时间复杂度是衡量算法执行时间随输入规模增长而变化的度量,它指示了算法的效率和性能。在本篇博客中,我们将深入探讨时间复杂度的相关知识,并结合C语言…...
《剑指Offer》笔记题解思路技巧优化 Java版本——新版leetcode_Part_5
《剑指Offer》笔记&题解&思路&技巧&优化_Part_5 😍😍😍 相知🙌🙌🙌 相识😢😢😢 开始刷题🟢1. LCR 158. 库存管理 II——数组中出现次数超过一…...
ubuntu上安装docker
在 Ubuntu 上安装 Docker,可以按照以下步骤进行操作: 更新软件包列表:运行以下命令来更新系统的软件包列表: sudo apt update安装必要的依赖项:运行以下命令来安装 Docker 所需的依赖项: sudo apt install …...
【Docker】Linux主机部署Docker
Docker部署 1.二进制文件部署 到如下地址,下载二进制包。 Docker官网:https://docs.docker.com/engine/install/binaries/ 网易镜像源:https://mirrors.163.com/docker-ce/linux/static/stable/x86_64/ 下载好的二进制包上传到主机…...
vue前端docx库生成word表格 并合并单元格的例子
Vue.js 是一个流行的前端JavaScript框架,用于构建用户界面和单页应用程序。在Vue中生成Word表格并合并单元格,通常需要使用额外的库,如docx,它是一个用于创建和修改Word文档(.docx)的JavaScript库。 …...
FastGPT配置文件及OneAPI程序:
FastGPT配置文件及OneAPI程序:百度网盘 请输入提取码 提取码:wuhe 创建fastgpt目录:mkdir fastgpt 切换到fastgpt目录:cd fastgpt 下载docker-compose文件:curl -O https://raw.githubusercontent.com/labring/Fast…...
Positive Semidefinite Matrices 什么是半正定矩阵?(undone)
参考视频:https://www.bilibili.com/video/BV1Vg41197ew/?vd_source7a1a0bc74158c6993c7355c5490fc600 参考资料(半正定矩阵的定义):https://baike.baidu.com/item/%E5%8D%8A%E6%AD%A3%E5%AE%9A%E7%9F%A9%E9%98%B5/2152711?frge_ala 看看半正定矩阵的…...
shapely 笔记:STR TREE
数据结构笔记:R树-CSDN博客 1 基本介绍 使用Sort-Tile-Recursive (STR) 算法创建的仅查询的R-tree空间索引该树索引每个几何图形的边界框。树在初始化时直接构建,且一旦创建后不能添加或移除节点所有操作返回输入几何图形的索引边界框限于二维并且是轴…...
neo4j常用代码
1】查版本: CALL dbms.components() YIELD name, versions RETURN name, versions; 2】清数据: MATCH ()-[r]->() DELETE r; MATCH (n) DETACH DELETE n; 3】NEO4J 操作入门_neo4j查看历史执行命令-CSDN博客 :play --首页 :help match/keys/com…...
OpenAI划时代大模型——文本生成视频模型Sora作品欣赏(五)
Sora介绍 Sora是一个能以文本描述生成视频的人工智能模型,由美国人工智能研究机构OpenAI开发。 Sora这一名称源于日文“空”(そら sora),即天空之意,以示其无限的创造潜力。其背后的技术是在OpenAI的文本到图像生成模型DALL-E基础上开发而成的。模型的训练数据既包含公开…...
Less预处理器教程
学习源码可以看我的个人前端学习笔记 (github.com):qdxzw/frontlearningNotes 觉得有帮助的同学,可以点心心支持一下哈 一、Less介绍 less官方文档 lesscss.org/ less中文文档 less.bootcss.com/ less是一种css预处理器,它扩展了css语言,…...
PCL 计算点云AABB包围盒的体积
目录 一、AABB包围盒二、代码实现三、结果展示四、相关链接本文由CSDN点云侠原创,原文链接。爬虫自重,把自己当个人。 一、AABB包围盒 AABB包围盒又称了 轴对齐包围盒,是点云包围盒里最简单的一种,其计算方法也极其简单。获取包围盒之后,根据包围盒的长宽高进行体积计算即…...
告别焦虑等待!Elsevier投稿状态自动追踪插件,让你的科研进度一目了然
告别焦虑等待!Elsevier投稿状态自动追踪插件,让你的科研进度一目了然 【免费下载链接】Elsevier-Tracker 项目地址: https://gitcode.com/gh_mirrors/el/Elsevier-Tracker 还在每天刷新Elsevier投稿页面,只为查看论文审稿状态吗&…...
Azure机器学习实战:汽车价格预测模型端到端部署
1. 项目概述:在 Azure 上构建一个真正能落地的汽车价格预测模型你有没有试过想买一辆二手车,却在几个平台之间反复比价、查配置、翻论坛,最后还是拿不准这台车到底值不值这个价?或者作为数据新人,手头有份汽车数据集&a…...
线上故障排查与应急响应实战:从零开始建立你的SRE体系
线上故障排查与应急响应实战:从零开始建立你的SRE体系 大家好,我是迪哥。2024 年我们的线上故障平均恢复时间(MTTR)是 45 分钟,2025 年降到了 10 分钟,怎么做到的?靠的是完善的应急响应机制和故…...
Logisim-evolution数字电路设计实战:从图形化设计到FPGA实现的完整工作流
Logisim-evolution数字电路设计实战:从图形化设计到FPGA实现的完整工作流 【免费下载链接】logisim-evolution Digital logic design tool and simulator 项目地址: https://gitcode.com/gh_mirrors/lo/logisim-evolution Logisim-evolution作为一款功能强大…...
2026年PMP项目管理培训报考机构深度横评:北上广深考生通关率与投入产出比全解析
一、前言 项目管理认证在职场中的含金量持续攀升,PMP证书已从传统工程领域扩展至产品、研发、运营、咨询等多个岗位,成为简历筛选中的显著加分项。与此同时,国内PMP培训市场呈现高度分散态势,线上线下机构数量庞大,教学…...
科技中介机构如何提升服务效率与转化率?
观点作者:科易网-国家科技成果转化(厦门)示范基地 在数智化浪潮席卷全球的今天,科技创新正经历着一场深刻的变革。数据已成为关键生产要素,重塑着创新主体间的关系,也催生了全新的科技成果转化模式。在这一…...
HTTP安全头配置陷阱与三层验证修复指南
1. 这不是“配个Header”就能糊弄过去的事很多人看到“Web服务器HTTP设置漏洞”第一反应是:不就是加几个Strict-Transport-Security、X-Content-Type-Options头吗?改两行配置,跑个在线扫描工具显示“绿色✓”,就关掉工单、打上“已…...
字体反爬破解实战:解析WOFF2 cmap表还原数字映射
1. 这不是字体文件,是藏在CSS里的“密码本”你打开浏览器开发者工具,切到Network标签页,刷新页面,一眼扫过去——几十个请求里,唯独那个fonts.woff2的响应体大小异常:明明只是显示几个数字,却加…...
1987年4月26日下午15-17点出生性格、运势和命运
1987年4月24日晚上出生的人,如今已步入38岁的门槛。在职业生涯中,这是一个承上启下的关键阶段——既脱离了职场新人的青涩,又尚未到达管理者或专家的巅峰位置。从非命理的角度分析,他们的事业运势与时代变迁、个人选择和社会结构密…...
Centurion配置详解:从零开始编写你的第一个部署脚本
Centurion配置详解:从零开始编写你的第一个部署脚本 【免费下载链接】centurion A mass deployment tool for Docker fleets 项目地址: https://gitcode.com/gh_mirrors/ce/centurion Centurion是一款强大的Docker集群批量部署工具,能够帮助开发者…...
