明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1725|回复: 6

怎样使c#里定义的命令重复使用,在按esc后退出?

[复制链接]
发表于 2011-5-8 17:09:49 | 显示全部楼层 |阅读模式
本帖最后由 reecho_cd 于 2011-5-8 17:11 编辑

     我在c#里写了个命令,想让它重复执行,按esc后退出。我写了下面的代码,但是按esc退不出,向各位达人请教一下,应该怎么写呢?谢谢了!(我的开发环境是。net05+cad05)
  [CommandMethod("jx")]
         public void wdx()
        {
            //获得CAD实例
            Database db = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Database;
            Autodesk.AutoCAD.DatabaseServices.TransactionManager tm = db.TransactionManager;      
            AcadApplication acadApp = (AcadApplication)System.Runtime.InteropServices.Marshal.GetActiveObject("AutoCAD.Application");
            AcadDocument docc = acadApp.ActiveDocument;//获得cad当前文档
            AutocadMAP.AcadMap map = (AcadMap)acadApp.GetInterfaceObject("AutoCADMap.Application");
           
            try
            {
               while (true)
                {
                  
                   Transaction trans = tm.StartTransaction();
                    excute(docc,map);//这是自己写的主要执行函数(其实就是想让这个函数重复执行,如果按esc键就退出)
                    trans.Commit();//
                    trans.Dispose();
                }
             }
            catch (Autodesk.AutoCAD.Runtime.Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
发表于 2011-5-8 23:05:54 | 显示全部楼层
      [DllImport("user32")]
      public static extern short GetKeyState(int nVirtKey);

while (GetKeyState((int)System.Windows.Forms.Keys.Escape) > 0)
发表于 2011-5-10 18:32:36 | 显示全部楼层
循环判断            
 楼主| 发表于 2011-5-11 20:35:18 | 显示全部楼层
回复 sieben 的帖子

谢谢!
不过我这里还是不能实现循环,按esc后仍然退不出。我再试试
 楼主| 发表于 2011-5-11 20:37:13 | 显示全部楼层
回复 pyt5208 的帖子

谢谢!
请问是循环判断按键状态吗?
不知道怎么监听自己定义的这个命令的开始结束事件?是否能够在commandcancel事件监听到
发表于 2011-7-12 17:19:50 | 显示全部楼层
用do{}while()循环,退出时让主要的执行函数返回值为false
发表于 2011-7-24 18:13:34 | 显示全部楼层
楼上正解`````
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 21:49 , Processed in 0.175220 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表