AutoCAD.NET API-中断关闭托盘/窗口/用户控制命令

AutoCAD.NET API-中断关闭托盘/窗口/用户控制命令,.net,api,autocad,.net,Api,Autocad,我的第一个帖子,温柔一点 我正在为AutoCAD 2011开发我自己的用户控件,在我的一生中,我无法在继续关闭之前,找出如何在用户控件上中断关闭并插入我自己的功能 为了清楚起见,这里有一个捕获 基本上,在窗口关闭之前,我需要清除隐藏在模型空间后面的一些我自己的图层,因为如果用户只需关闭工具而不执行擦除操作,那么在添加新对象/保存/等方面,最终将导致问题。我当然不能相信用户会单击“擦除”退出前按下UC上的按钮,这只是自找麻烦 因此,我的问题是:在API中查找关闭用户控件的代码的位置是什么?当您单

我的第一个帖子,温柔一点

我正在为AutoCAD 2011开发我自己的用户控件,在我的一生中,我无法在继续关闭之前,找出如何在用户控件上中断关闭并插入我自己的功能

为了清楚起见,这里有一个捕获

基本上,在窗口关闭之前,我需要清除隐藏在模型空间后面的一些我自己的图层,因为如果用户只需关闭工具而不执行擦除操作,那么在添加新对象/保存/等方面,最终将导致问题。我当然不能相信用户会单击“擦除”退出前按下UC上的按钮,这只是自找麻烦


因此,我的问题是:在API中查找关闭用户控件的代码的位置是什么?

当您单击“X”标记时,Acad选项板实际上并没有关闭(释放)。它们只是隐藏起来的。 您可能需要尝试
调色板状态::状态更改
事件。“关闭”选项板集时可能会触发该选项板。只需为该事件注册一个委托,然后查看它是否被调用。可能有用

*编辑*
现在我仔细考虑了一下,您应该能够通过向自定义控件的
控件.VisibleChanged
事件注册委托来捕获该事件。作为子项添加到选项板集的选项。这应该行。

这更像是一个评论,而不是一个答案,但我担心它最终会太大而无法发表评论。这里有一些值得思考的东西。我会尽可能地温柔,但在那些知道我温柔的人中,我并不为人所知……)

我担心你会在一个。。。不太理想的建筑方式。您的问题表明您希望用户执行模式操作(命令-show dialog-do stuff with dialog-close dialog),但您使用的是非模式(可能始终打开)GUI元素(“代码>选项板集”)

你问过自己吗?如果用户从不关闭对话框会发生什么?使用
选项板集
他们可以选择该选项。在这种情况下,您的“擦拭”将永远不会运行。这也会导致今后的问题吗

我想我鼓励你问的问题是“调色板集是否适合我所做的工作?”我只是从你的描述和屏幕截图中猜测工作和工作流程,但我的猜测与我有关。我想知道您在这里真正想要使用的是一个简单的模式表单,它是从当前启动
调色板集的任何机制启动的,用户必须用OK按钮关闭该表单,然后在OK处理程序中执行“擦除”

如果使用
选项板集
的原因是用户必须在图形处于活动状态时与图形交互,则可以通过多种方法使模式对话框不受干扰,并允许用户拾取实体或所需的任何对象。请记住,当无模式的
选项板集处于活动状态时,用户可以执行其他任何操作—打开其他图形、绘制图元、外部参照其他图形、运行其他命令等。对话框是否需要它们具有如此大的灵活性?它准备好在所有这些情况下妥善处理自己了吗


即使我完全误解了你的情况,我希望这能有所帮助。

这是值得思考的,谢谢你的评论。我才刚刚开始学习autoCAD api,所以欢迎所有建议和建议。如果你是一个经验丰富的用户,尤其可以做一些书籍推荐。我不是要求书籍推荐的人。我想我在ACAD API上没有一个。我所知道的大部分都是来自于艰难和挫折的学校:)你可能已经知道这本书了,但以防万一,我想推荐给大家的一本书是。另外,我对你的问题投了更高的票,所以你现在应该有足够的代表投票了。