0

当我运行打开多个模型的加载项时,我需要抑制链接的 .rvt 文件的实例需要协调审查对话框,因为我不希望用户需要单击一堆对话框。我已经添加了一个事件处理程序UIApplication.DialogBoxShowing,它会检查对话框是否有HelpId == 1011(在此处找到)这是我正在寻找的对话框。但是,当我尝试该e.OverrideResult方法时,它似乎总是取消该操作。我试过TaskDialogResult.OkDialogResult.Ok但他们都取消了这个动作。

这是我的事件处理程序:

private void application_DialogBoxShowing(object sender, 
  DialogBoxShowingEventArgs e)
{
  if (e.HelpId == 1011)
    e.OverrideResult((int)TaskDialogResult.Ok);
}

我可以传递什么对话结果以使操作继续?

4

1 回答 1

1

我决定创建一个与事件相关的事件处理程序,而不是在显示对话框时使用事件处理程序UIApplication.Application.FailuresProcessing我从Building Coder中找到了有关失败 API 的信息。

下面的代码将禁止所有警告。

private void Application_FailuresProcessing(object sender, 
  FailuresProcessingEventArgs e)
{
  FailuresAccessor failuresAccessor = e.GetFailuresAccessor();
  IEnumerable<FailureMessageAccessor> failureMessages =
    failuresAccessor.GetFailureMessages();

  foreach (FailureMessageAccessor failureMessage in failureMessages)
  {
    if (failureMessage.GetSeverity() == FailureSeverity.Warning)
      failuresAccessor.DeleteWarning(failureMessage)
  }

  e.SetProcessingResult(FailureProcessingResult.Continue)
}

您可以添加一个 if 语句来检查failureMessage.GetFailureDefinitionId().Guid == new Guid("3d983f31-9ee3-4c3a-bed8-663b32cecec5")您是否只想禁止特定的协调审查消息。

于 2013-11-13T18:10:38.383 回答