【发布时间】:2020-12-25 14:17:21
【问题描述】:
我正在尝试为 Revit 创建一个外部命令,该命令会弹出一个 Windows 窗体,该窗体有一个文本框供用户输入描述。用户单击“确定”后,表单关闭,但 Revit 卡在加载动作中。它不会冻结,它只是不断地加载一些东西。当我暂停调试时,代码只进入了 form.ShowDialog() 行。如果我取出 showdialog 并在没有表单的情况下运行它,它运行良好。
我将在下面发布我的相关代码 sn-ps。该表单位于其自己的 .cs 中,与外部命令 .cs 分开,但仍位于同一命名空间下。
表单点击事件代码:
private void CancelForm(object sender, EventArgs e)
{
isReport = false;
this.DialogResult = DialogResult.Cancel;
Close();
}
private void SubmitForm(object sender, EventArgs e)
{
isReport = true;
reportDesc = descriptionBox.Text;
this.DialogResult = DialogResult.OK;
Close();
}
执行命令:
public Result Execute(ExternalCommandData commandData, ref string message, ElementSet elements)
{
//Get application and document objects
UIApplication uiapp = commandData.Application;
Document doc = uiapp.ActiveUIDocument.Document;
ReportForm ticket = new ReportForm();
ticket.ShowDialog();
代码在 showdialog 之后停止处理。从我可以阅读的内容来看,我认为这可能与表单关闭后关注 Revit 或表单未正确关闭但不知道如何修复它有关。
任何帮助将不胜感激!
【问题讨论】:
-
只是想补充一点,我在 try/catch 下拥有它,并且脚本的任何部分都没有收到任何错误。它不会失败,只是不会前进。