非模态对话框与事务


问题:

在非模态对话框中添加了一个按钮,点击按钮时会启动一个事务,请问我该如何判断Revit环境中是否有事务正在运行,如果有事务正在运行时,如何把按钮变的不可用

这是一个有关Revit 2012的问题。


答:

在Revit2012中,在非模态对话框中启动事务,然后对模型进行修改这个方法是不安全的。 可能会出现莫名其妙的错误。

我们建议使用Idling事件,在对话框的按钮事件中做一个标记,说明命令可以启动,然后在Idling处理函数中对模型进行处理。 这样是安全的。

Revit2013 SDK中有一个例子演示了你这样情况下如何用Idling事件。

请到我的skydrive下载 ModelessForm_IdlingEvent.zip 文件

https://skydrive.live.com/?cid=b77d41da8062e892#cid=B77D41DA8062E892&id=B77D41DA8062E892%21179&sc=documents


这个例子在Revit2012下也应该可以运行。

你可能感兴趣的:(非模态对话框与事务)