VB.net 进行CAD二次开发(二)
利用参考文献2,添加面板
执行treeControl = New UCTreeView()时报一个错误:
用户代码未处理 System.ArgumentException
HResult=-2147024809
Message=控件不支持透明的背景色。
Source=System.Windows.Forms
StackTrace:
在 System.Windows.Forms.Control.set_BackColor(Color value)
在 System.Windows.Forms.Form.set_BackColor(Color value)
在 Autodesk.AutoCAD.Windows.AcMgWinformPalette.ResyncToTheme(AcMgWinformPalette* )
在 Autodesk.AutoCAD.Windows.AcMgWinformPalette.Create(AcMgWinformPalette* , CAdUiPaletteSet* pParentWnd)
在 Autodesk.AutoCAD.Windows.PaletteSet.AddCore(String name, AcMgPalette* pPal)
在 Autodesk.AutoCAD.Windows.PaletteSet.Add(String name, Control control)
在 odpmMagProcess.Palettes.Palettes.ShowPalette() 位置 D:\testVBNet\ODPM\odpmMagProcess\Class3.vb:行号 28
在 Autodesk.AutoCAD.Runtime.CommandClass.InvokeWorker(MethodInfo mi, Object commandObject, Boolean bLispFunction)
在 Autodesk.AutoCAD.Runtime.CommandClass.InvokeWorkerWithExceptionFilter(MethodInfo mi, Object commandObject, Boolean bLispFunction)
在 Autodesk.AutoCAD.Runtime.PerDocumentCommandClass.Invoke(MethodInfo mi, Boolean bLispFunction)
在 Autodesk.AutoCAD.Runtime.CommandClass.CommandThunk.Invoke()
InnerException:
搜索了1天关于这个问题的解决方案,并且尝试了这些方案,都没有很好地解决这个问题。
半拉子的解决办法是,给UCDockDrag和UCTteeView添加了构造函数
UCDockDrag.vb
Public Sub New()
' 此调用是设计器所必需的。
InitializeComponent()
' 在 InitializeComponent() 调用之后添加任何初始化。
SetStyle(ControlStyles.SupportsTransparentBackColor, True)
comboBoxDock.BackColor = Color.Red
textBoxDrag.BackColor = Color.Red
Me.BackColor = Color.Red
Me.TransparencyKey = Me.BackColor
End Sub
UCTteeView.vb
Public Class UCTreeView
Public Sub New()
' 此调用是设计器所必需的。
InitializeComponent()
' 在 InitializeComponent() 调用之后添加任何初始化。
SetStyle(ControlStyles.SupportsTransparentBackColor, True)
treeViewEnts.BackColor = Color.Red
dataGridViewEnts.BackgroundColor = Color.Red
'TransparencyKey = Color.FromArgb(1, 0, 0, 0)
Me.BackColor = Color.Red
Me.TransparencyKey = Me.BackColor
End Sub
调试的结果如下:
使用用户控件以后,就没有问题了
面板内的控件都不显示。
换一种思路,搜索其他添加面板的方法。
Imports Autodesk.AutoCAD.Runtime
Imports Autodesk.AutoCAD.Windows
Imports System.Windows.Forms
Namespace Palettes
Public Class Class4
<CommandMethod("CreatePalette")>
Public Sub CreatePalette()
'初始化面板集对象
Dim ps As PaletteSet = New PaletteSet("我的窗体")
ps.MinimumSize = New System.Drawing.Size(300, 300)
' 创建用户自定义的窗体或控件
Dim ctrl As UserControl = New UserControl()
'添加控件到面板集中
ps.Add("My Tab01", ctrl)
ps.Add("My Tab02", ctrl)
'显示面板
ps.Visible = True
'设置面板样式和透明度
ps.Style = PaletteSetStyles.ShowTabForSingle
ps.Opacity = 90
End Sub
End Class
End Namespace
图层选择
<CommandMethod("SelectLayer")>
Public Sub SelectLayer()
Dim doc As Document = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument
If Not doc Is Nothing Then
Dim ps As PaletteSet = New PaletteSet("Select Layer")
ps.Style = PaletteSetStyles.ShowAutoHideButton Or PaletteSetStyles.ShowCloseButton
ps.Size = New System.Drawing.Size(200, 100)
Dim comboBox As System.Windows.Forms.ComboBox = New System.Windows.Forms.ComboBox()
For Each layer As LayerTableRecord In GetLayerList()
comboBox.Items.Add(layer.Name)
Next
Dim okButton As System.Windows.Forms.Button = New System.Windows.Forms.Button()
okButton.Text = "OK"
AddHandler okButton.Click,
Sub(sender, e)
Dim selectedLayer As String = comboBox.SelectedItem.ToString()
Autodesk.AutoCAD.ApplicationServices.Application.ShowAlertDialog("Selected Layer: " + selectedLayer)
End Sub
Dim panel As System.Windows.Forms.Panel = New System.Windows.Forms.Panel()
panel.Controls.Add(comboBox)
panel.Controls.Add(okButton)
ps.Add("Select Layer", panel)
ps.Visible = True
End If
End Sub
VS2013 的MSDN文档的ISO下载和安装见参考文献6
参考文献
AutoCAD C# 自动加载自定义RibbonUI界面_怎么给autocad换ui-CSDN博客
VB.net 关于给autoCAD添加 面板_application.getsystemvariable("menuname")-CSDN博客
https://bbs.csdn.net/topics/80039904
C# CAD交互界面-自定义面板集-comboBox选择图层_cad c#-CSDN博客
C# CAD交互界面-自定义面板集(四) - 技术栈
https://www.cnblogs.com/strangekitty/p/4707400.html
C#中=>使用_c# =>-CSDN博客
AddHandler 语句 - Visual Basic | Microsoft Learn
VB.NET 中动态添加按钮并添加点击事件-CSDN博客
Lambda 表达式 - Visual Basic | Microsoft Learn
相关文章:
VB.net 进行CAD二次开发(二)
利用参考文献2,添加面板 执行treeControl New UCTreeView()时报一个错误: 用户代码未处理 System.ArgumentException HResult-2147024809 Message控件不支持透明的背景色。 SourceSystem.Windows.Forms StackTrace: 在 System.Windows…...
安徽某高校数据挖掘作业6
1 根据附件中year文件,编辑Python程序绘制年销售总额分布条形图和年净利润分布条形图,附Python程序和图像。 2 根据附件中quarter和quarter_b文件,编辑Python程序绘制2018—2020年销售额和净利润折线图,附Python程序和图像。 3 …...
CMakeLists.txt和Package.xml
CMakeLists.txt和Package.xml CMakeLists.txt 总览 CMakeLists.txt 是用于定义如何构建 ROS (Robot Operating System) 包的 CMake 脚本文件。CMake 是一个跨平台的构建系统,用于自动化编译过程。在 ROS 中,CMakeLists.txt 文件指定了如何编译代码和链…...
Debian常用命令详解
Debian常用命令详解 Debian是一个流行的Linux发行版,它以其稳定性、强大的包管理系统和丰富的软件仓库而著称。对于Debian用户来说,掌握一些常用的命令行工具和命令是日常系统管理和维护的基础。下面,我们将介绍一些Debian系统中常用的命令。…...
代码随想录算法训练营day29|491.递增子序列、46.全排列、47.全排列II
递增子序列 491. 非递减子序列 - 力扣(LeetCode) 非递减子序列,则答案的子集中,需保持下一个元素大于等于前一个元素的顺序,由于题目中指出,所有的子序列长度需大于等于2,考虑当条件为path.siz…...
【ARM Cache 与 MMU 系列文章 7.8 – ARMv8/v9 MMU Table 表分配原理及其代码实现 2】
请阅读【ARM Cache 及 MMU/MPU 系列文章专栏导读】 及【嵌入式开发学习必备专栏】 文章目录 MMU Table 表分配原理及其代码实现MMU Table 分配代码实现MMU Table 表分配原理及其代码实现 在做映射的时候所映射的地址范围最大只能是某一级 level table 中 entry 所能支持的最大…...
SAP PP学习笔记17 - MTS(Make-to-Stock) 按库存生产(策略70)
上几章讲了几种策略,策略10,11,30,40。 SAP PP学习笔记14 - MTS(Make-to-Stock) 按库存生产(策略10),以及生产计划的概要-CSDN博客 SAP PP学习笔记15 - MTS(Make-to-St…...
网页音频提取在线工具有哪些 网页音频提取在线工具下载
别再到处去借会员账号啦。教你一招,无视版权和地区限制,直接下载网页中的音频文件。没有复杂的操作步骤,也不用学习任何代码。只要是网页中播放的音频文件,都可以把它下载到本地保存。 一、网页音频提取在线工具有哪些 市面上的…...
【ARM Cache 系列文章 2.1 -- Cache PoP 及 PoDP 介绍】
请阅读【ARM Cache 及 MMU/MPU 系列文章专栏导读】 及【嵌入式开发学习必备专栏】 文章目录 PoP 及 PoDPCache PoDPCache PoP应用和影响PoP 及 PoDP Cache PoDP 点对深度持久性(Point of Deep Persistence, PoDP)是内存系统中的一个点,在该点达到的任何写操作即使在系统供电…...
一文了解JVM面试篇(上)
Java内存区域 1、如何解释 Java 堆空间及 GC? 当通过 Java 命令启动 Java 进程的时候,会为它分配内存。内存的一部分用于创建 堆空间,当程序中创建对象的时候,就从对空间中分配内存。GC 是 JVM 内部的一 个进程,回收无效对象的内存用于将来的分配。 2、JVM 的主要组成…...
C#WPF控件Textbox绑定浮点型数据限制小数位方法
本文讲解C#WPF控件Textbox绑定浮点型数据限制小数位方法。 XAML中,使用StringFormat来格式化TextBox的文本 <Window x:Class="WpfApp.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.m…...
mysql引入表名称的注意事项
1、遇到问题 mapper中的文件是这样的 解析出来的sql是这样的 sql显示为:select * from ‘tableName’ 2、解决方法 mapper文件种使用${tableName}而不是#{tableName}...
C语言数据结构快速排序的非递归、归并排序、归并排序的非递归等的介绍
文章目录 前言一、快速排序非递归二、归并排序五、归并排序非递归总结 前言 C语言数据结构快速排序的非递归、归并排序、归并排序的非递归等的介绍 一、快速排序非递归 快速排序非递归的定义 快速排序非递归,需要使用栈来实现。将左右下标分别push到栈中。在栈为…...
学生成绩管理系统(大一大作业)
功能 实现添加,排序,修改,保存等功能 库函数 #include<stdio.h> #include<stdlib.h> #include<windows.h> #include<string.h> 头文件 #define functioncreate(major) void major##compare(mana mn){\int i,j,s…...
数据结构:模拟栈
数据结构:模拟栈 题目描述参考代码 题目描述 输入样例 10 push 5 query push 6 pop query pop empty push 4 query empty输出样例 5 5 YES 4 NO参考代码 #include <iostream>using namespace std;const int N 1000010;int m, x; int q[N]; string op; int…...
02-2.3.6 顺序表和链表的比较
喜欢《数据结构》部分笔记的小伙伴可以订阅专栏,今后还会不断更新。🧑💻 此外,《程序员必备技能》专栏和《程序员必备工具》专栏(该专栏暂未开设)日后会逐步更新,感兴趣的小伙伴可以点一下订阅…...
C++ : 模板初阶
标题:C : 模板初阶 水墨不写bug 正文开始: C语言的问题 : 写不完的swap函数 在学习C语言时,我们有一个经常使用的函数swap函数,它可以将两个对象的值交换。 我们通常这样实现它: void swap(int t1,int t2)…...
FFA-Net:用于单图像去雾的特征融合注意力网络
摘要 论文链接:https://arxiv.org/pdf/1911.07559v2 在这篇论文中,我们提出了一种端到端的特征融合注意力网络(FFA-Net)来直接恢复无雾图像。FFA-Net架构由三个关键组件组成: 一种新颖的特征注意力(FA&…...
网工内推 | 联通公司,云计算售前,AWS认证优先
01 联通数字科技有限公司 🔷招聘岗位:云计算售前工程师 🔷职责描述: 1.了解私有云,公有云,混合云等云计算技术知识,了解云计算行业现状及发展趋势。 2.承担区域项目售前工作支持,为…...
[Redis]Zset类型
Zset有序集合相对于字符串、列表、哈希、集合来说会有一些陌生。 它保留了集合不能有重复成员的特点,但与集合不同的是,有序集合中的每个元素都有一个唯一的浮点类型的分数(score)与之关联,着使得有序集合中的元素是可…...
【云原生】Kubernetes----Ingress对外服务
目录 引言 一、K8S对外方式 (一)NodePort 1.作用 2.弊端 3.示例 (二)externalIPs 1.作用 2.弊端 3.示例 (三)LoadBalancer 1.作用 2.弊端 (四)Ingress 二、Ingress的…...
项目管理之maven svn
管理jar包之间依赖关系 编译、打包、清理、测试等一系列构建工具 一、Maven的标志 1、每一个maven工程都有一个pom.xml maven项目坐标 <groupId>com.aaa</groupId>//项目路径 <artifactId>web</artifactId>项目名称 <version>0.0.1-SNAPS…...
Redis篇 list类型在Redis中的命令操作
list在redis基本的命令 一.基本命令1.lpush和range2.lpushx rpushx3.lpop rpop4.lindex linsert llen5.lrem6.ltrim lset7.blpop brpop 一.基本命令 list在redis中相当于数组或者顺序表. 1.lpush和range 2.lpushx rpushx 3.lpop rpop 4.lindex linsert llen 如果要插入的列表中…...
【C++课程学习】:类和对象(上)(类的基础详细讲解)
🎁个人主页:我们的五年 🔍系列专栏:C课程学习 🎉欢迎大家点赞👍评论📝收藏⭐文章 目录 🍟1.1类的引出: 🍟1.2类的结构: 🍟1.3类的…...
HTML 转义字符(escape characters)及其对应的符号(symbols)
以下是常见的 HTML 转义字符及其对应的符号,这些可以用于在 HTML 或 JSX 中避免解析错误和特殊字符的冲突: 空格 ( ): 或 引号: 单引号():'、‘、、’双引号("&#x…...
CPASSOC代码详解
加载环境 library("MASS") require(MASS) # Modern Applied Statistics with S,"S"指的是S语言,由贝尔实验室的约翰钱伯斯(John Chambers)等人开发。S语言是R语言的前身,许多R语言的语法和功能都…...
dirfuzz-web敏感目录文件扫描工具
dirfuzz介绍 dirfuzz是一款基于Python3的敏感目录文件扫描工具,借鉴了dirsearch的思路,扬长避短。在根据自身实战经验的基础上而编写的一款工具,经过断断续续几个月的测试、修改和完善。 项目地址:https://github.com/ssrc-c/di…...
计算机发展史 | 从起源到现代技术的演进
computer | Evolution from origins to modern technology 今天没有参考资料哈哈 PPT:(评论区?) 早期计算工具 算盘 -算盘是一种手动操作的计算辅助工具,起源于中国,迄今已有2600多年的历史,是…...
45-3 护网溯源 - 为什么要做溯源工作
官网:CVERC-国家计算机病毒应急处理中心 西工大遭网络攻击再曝细节!13名攻击者身份查明→ (baidu.com) 护网溯源是指通过技术手段追踪网络攻击的来源和行为,其重要性体现在以下几个方面: 安全防御:了解攻击源头可以帮助组织加强网络安全防御,及时采取措施防止攻击的再次…...
【JavaEE 进阶(二)】Spring MVC(下)
❣博主主页: 33的博客❣ ▶️文章专栏分类:JavaEE◀️ 🚚我的代码仓库: 33的代码仓库🚚 🫵🫵🫵关注我带你了解更多进阶知识 目录 1.前言2.响应2.1返回静态界面2.2返回数据2.3返回HTML代码 3.综合练习3.1计算器3.2用户登…...
东莞网站建设设计公司/搜索引擎排名2020
前言 pyquery库是jQuery的Python实现,能够以jQuery的语法来操作解析 HTML 文档,易用性和解析速度都很好,和它差不多的还有BeautifulSoup,都是用来解析的。相比BeautifulSoup完美翔实的文档,虽然PyQuery库的文档弱爆了…...
wordpress添加超链接/互联网营销师报名
o(∩_∩)o...哈哈,终于有了自己的菜园,希望以后多多种出好多好多的好菜。。 首先简单的做个自我介绍。 本人在北京、.net开发、主要做BS。还是刚刚入道。正在是基本功和内功修炼的阶段。希望能在这里和大家一起分享我的经验和心得。 有我们的互相鼓励&am…...
厦门外贸公司做网站/百度搜图
我很确定你不能通过limits.conf设置服务限制,但仅限于用户空间.Crontab在指定的用户空间中执行脚本,该用户空间通过用户名从/ etc / crontab定义,或者从用户自己的个人crontab定义.因此,必须在用户空间级别或自己的脚本内部应用限制.但是正确的是你需要在pam.d / cron下启用限制…...
wordpress 淘客代码/上海专业排名优化公司
封装并查集类 萌新码风,功能有限,还请赐教。 成员变量 集合规模 n 父节点数组 fa 构造方法 两个构造方法 需要传入集合规模n,以便创建数组对象,默认规模为10000。 私有方法 查询根节点方法:int GetFather(int k…...
我赢网seo优化网站/十大暗网搜索引擎
郁闷!今天淘宝被差评 郁闷!今天淘宝被差评。经历了淘宝近5个月的掌柜后(全职1个半月),淘宝创业的心酸苦辣也是尝了不少,知道淘宝掌柜最怕啥吗?我总结了3大怕5小怕,今天来说一大怕吧-…...
益阳市 网站建设/企业营销策略分析论文
那是我处理GD东西的第一个方法.我正在尝试使用jcrop jquery插件实现调整大小和裁剪的功能.我仍然不知道如何保存裁剪后的图像.在jcrop网站上没有太多关于它的内容.这是我的代码:if ($_SERVER[REQUEST_METHOD] POST) {$targ_w $targ_h 150;$jpeg_quality 90;$src…...