代码之家  ›  专栏  ›  技术社区  ›  svick Raja Nadar

仅在WPF中的ShowDialog()之后设置DialogResult

  •  8
  • svick Raja Nadar  · 技术社区  · 16 年前

    我有一扇窗户,我有时用它打开 Show() 有时使用 ShowDialog() . 在第二种情况下,返回的对话框结果对我来说很重要。但是如果我设定了 DialogResult 打完电话 我得到一份工作 InvalidOperationException . 有没有办法找到打开窗口和设置窗口的方法 对话结果

    当然我知道我可以捕获并忽略异常,但我不喜欢这个解决方案。

    4 回复  |  直到 14 年前
        1
  •  10
  •   Pop Catalin    16 年前

    使用 System.Windows.Interop.ComponentDispatcher.IsThreadModal 在窗口内,确定它是否在模式线程上运行。

        2
  •  4
  •   Phil Devaney    16 年前

    如果查看Reflector中的set_DialogResult,它会检查显示对话框以确定对话框是否为模态。不幸的是,这是一个私人领域。

        3
  •  2
  •   Frank Bollack    16 年前

    你可以使用 Form.Modal 属性来检查使用的类型。

    Form.Show() 您必须使用另一种方式让调用者知道表单的任何结果。

    是否有理由使用两种方式显示表单?

        4
  •  0
  •   Stuart Grassie    16 年前

    在表单关闭事件中设置this.DialogResult=DialogResult.blah怎么样?