乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 83|回复: 3

从调色板取消当前命令并保留拾取优先?

[复制链接]

85

主题

404

帖子

7

银币

中流砥柱

Rank: 25

铜币
751
发表于 2018-12-24 00:31:54 | 显示全部楼层 |阅读模式

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

14

主题

275

帖子

6

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
331
发表于 2018-12-24 01:23:42 | 显示全部楼层
您可以检查编辑器是否处于空闲状态,因此不必取消任何命令。对于活动命令,可以显示消息框或循环转义,直到没有处于活动状态的命令。我记得在极少数情况下,在取消命令之前,您甚至需要三次转义,但我不记得是哪一个。
回复

使用道具 举报

4

主题

219

帖子

4

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
238
发表于 2018-12-24 11:27:47 | 显示全部楼层
在我最近的一篇文章中(https://drive-cad-with-code.blogspot.com/2018/10/executing-command-from-paletteset.html),我讨论了同一个主题,与另一个回复建议的主题类似:测试是否有正在进行的活动命令,并仅使用SendStringToExecute()发送“\x30\x30”以取消该命令,而不是使用带有“\x三十\x30”前缀的命令字符串调用sendstring-toexecate。这样,只要没有正在执行的活动命令,使用SendStringToExecute()从选项板集启动的命令将在命令具有CommandFlags时拾取第一个选择集。设置UsePickSet标志。
回复

使用道具 举报

85

主题

404

帖子

7

银币

中流砥柱

Rank: 25

铜币
751
发表于 2018-12-25 15:38:54 | 显示全部楼层
谢谢伙计们,这是一个多么简单的解决方案!诺曼,谢谢你在你的博客上写下来,这对我们来说是一个有价值的资源。NET CAD人员这是我在命令类中想出的:///。
///通过SendStringToExecute发送命令。
///要保留Pickfirst,仅在有活动命令时取消。。
>/// //要发送的命令,。
公共静态无效发送(字符串cmd)。
{。
文档文档=CAD_App.DocumentManager.MdiActiveDocument;。
if(doc==null)返回;。
//最后必须有一个空间,。
if(!cmd.EndsWith (" ")) cmd += " ";。
//检查活动命令。
int activeCmd=Convert.ToInt32(CAD_App.GetSystemVariable("CMDActive"));。
如果(activeCmd>0)。
{。
//取消它。
doc.SendStringToExecute("\x03\x03", false, true, false);。
}。
//现在发送我们想要的命令。
doc.SendStringToExecute(cmd, false, true, false);。
}它从一个托盘中调用,类似于:私有空btnSetSize_Click(对象发送者,EventArgs e)。
{。
Commands.Send("IR_SetPipeSize");。
}背靠背SendStringToExecute调用可能有问题,因为我认为它是异步的,但到目前为止我还没有看到任何问题。
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-2-4 08:38 , Processed in 0.149178 second(s), 60 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表