C#操作CAD-调用winform
个人认为用命令操作cad会比较便捷,但是鉴于好多人喜欢通过鼠标点击的方式操作cad,在此讲一下如何调用winform。前期准备请看上篇文章。
1、在新建好项目并引用接口dll的前提下,新建一个winform或者用户控件。
直接调用winform会在电脑上直接生成一个独立于cad的窗体,我感觉很不舒服,所以我直接讲解生成PaletteSet(内嵌入cad窗口)的方法流程。
2、调用过程其实就是执行一个函数而已,而函数的调用需要用户输入命令(当然也可以让调用自动执行),设计好用户控件后,我们在任意一个类里面写入以下代码:
public class Main : IExtensionApplication
{
[CommandMethod("show")]
public void Initialize()
{
UserControl1 control1 = new UserControl1();
PaletteSet ps = new PaletteSet("面板1");
ps.Size = new System.Drawing.Size(, );
ps.Style = PaletteSetStyles.ShowCloseButton;
ps.Add("用户控件", control1);
ps.Visible = true;
}
public void Terminate()
{ }
}
3、和执行一个普通命令一样,在cad命令窗口里面输入show就会在cad窗口左边生成一个内嵌入cad的panel,上面的按钮都可以正常使用。
附上一个button事件:
private void mi1_Click(object sender, EventArgs e)
{
Document doc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;
doc.SendStringToExecute("Line ", true, false, true);//line后面有空格表示确定
}
以上代码和在命令行输入line的效果一模一样,调用的是cad内部命名。
C#操作CAD-调用winform的更多相关文章
- C# winForm webBrowser页面中js调用winForm类方法(转)
有时我们在winform项目中嵌入了网页,想通过html页面调用后台方法,如何实现呢?其实很简单,主要有三部: 1.在被调用方法类上加上[ComVisible(true)]标签,意思就是当前类 ...
- 在WPF中调用Winform控件
最近在项目中用到了人脸识别和指纹识别,需要调用外部设备和接口,这里就用到了在WPF中调用Winform控件. 第一步,添加程序集引用.System.Windows.Forms和WindowsForms ...
- [Winform-WebBrowser]-在html页面中js调用winForm类方法
在winform项目中嵌入了网页,想通过html页面调用后台方法,如何实现呢?其实很简单,主要有三部: 1.在被调用方法类上加上[ComVisible(true)]标签,意思就是当前类可以com组件的 ...
- powershell 调用winform dll
//1.加载dll,调用winform窗体,使用指定构造函数 param{ $filePath="" } [void][reflection.assembly]::LoadFile ...
- 自定义Windows右击菜单调用Winform程序
U9_Git中ignore文件处理 背景 U9代码中有许多自动生成的文件,不需要上传Git必须BE Entity中的.target文件 .bak 文件 Enum.cs结尾的文件,还有许多 extand ...
- js调用winform程序(带参数)
我们会发现,我们点击迅雷下载的时候 网页可以调用应用程序,而且连接会传入迅雷,这个是怎么做到的呢? 原理: 先注册表中添加软件的具体信息,然后通过 href 可以直接调用 1.写入注册表信息,注册, ...
- Hadoop学习记录(3)|HDFS API 操作|RPC调用
HDFS的API操作 URL方式访问 package hdfs; import java.io.IOException; import java.io.InputStream; import java ...
- 如何在多线程中调用winform窗体控件
由于 Windows 窗体控件本质上不是线程安全的.因此如果有两个或多个线程适度操作某一控件的状态(set value),则可能会迫使该控件进入一种不一致的状态.还可能出现其他与线程相关的 bug,包 ...
- [C#学习]在多线程中如何调用Winform[转]
问题的产生: 我的WinForm程序中有一个用于更新主窗口的工作线程(worker thread),但文档中却提示我不能在多线程中调用这个form(为什么?),而事实上我在调用时程序常常会崩掉.请问如 ...
随机推荐
- Angular 2: 404 error occur when I refresh through the browser [duplicate]
https://stackoverflow.com/questions/35284988/angular-2-404-error-occur-when-i-refresh-through-the-br ...
- RPC 框架 应用
RPC RPC(Remote Procedure Call)服务,也即远程过程调用,在互联网企业技术架构中占据了举足轻重的地位,尤其在当下微服务化逐步成为大中型分布式系统架构的主流背景下,RPC 更扮 ...
- HDU - 4291 循环节
还有这种操作? #include<bits/stdc++.h> #define rep(i,j,k) for(register int i=j;i<=k;i++) #define p ...
- 使用手淘flexible.js适配移动端布局
下载flexible: https://github.com/amfe/lib-flexible //未压缩版 (function flexible (window, document) { var ...
- Java执行操作系统命令
从网上学来的方法,sample: try { String[] cmd = new String[] { System.getenv("HOMEPATH") + "/te ...
- web app与app的区别,即html5与app的区别
公司准备要做一个项目,是p2p配资的app.在网上问了一些人后,发现有的是直接有html5做好后,用软件封装的.之前我学过app的开发,当时Android版本的,知道开发Android app时写的代 ...
- 一套完整的VI包含哪些元素
VI设计,即视觉识别系统,企业VI设计是企业品牌建设的重中之重.最近很多人都在问,一套完整的企业VI设计都包括哪些内容?笔者站在一个高级设计师的角度,来简单谈一谈VI设计包括哪些内容.文中指出,一套完 ...
- 引导篇之HTTP事务
一个完整的HTTP事务流图: HTTP报文格式: 起始行:在请求报文中用来说明要做些什么,在响应报文中说明出现了什么情况 首部:起始行后面有0个或多个首部字段.每个首部字段都包含一个名字和一个值,为了 ...
- (转)Shell——基本运算符
Shell 基本运算符 原文:http://blog.csdn.net/sinat_36053757/article/details/70319481 Shell 和其他编程语言一样,支持多种运算符, ...
- java集合常用操作
收集一些常用集合操作的代码,用于治疗健忘症,:) set转list //构造Map数据 Map<String, String> map = new HashMap<String, S ...