【问题标题】:Focus on previously opened window from new modal dialog专注于从新模式对话框中打开的窗口
【发布时间】:2015-02-17 20:32:48
【问题描述】:

我的情况如下:

我有一个主窗体。我用Show() 方法打开另一个窗口(1)。它不是模态的。我使用ShowDialog 打开第二个模态窗口 (2)。

现在,我搜索打开的表单并找到窗口 (1)。我能够提出它,专注于它,但我无法在其中使用任何控制 - 它已被锁定。是否可以“解锁”该窗口 (1) 而无需关闭并重新打开它?

【问题讨论】:

  • 如果模态窗口 (2) 是 (1) 的子窗口,则不能,因为这是默认行为。

标签: c# winforms modal-dialog windows-forms-designer


【解决方案1】:

Default behaviour for this situation是阻塞当前窗口,等待对话结果:

Window 类被实例化时,默认情况下它是不可见的。 ShowDialog 显示窗口,禁用应用程序中的所有其他窗口,并且仅在窗口关闭时返回。这种类型的窗口称为模态窗口。

您唯一能做的就是通过Form.ShowDialog Method (IWin32Window) 覆盖设置Owner 属性,但这不会“解锁”其他窗口,因为您正在使用模式窗口:

Window.ShowDialog 方法
打开一个窗口,只有在新打开的窗口关闭时才返回。

【讨论】:

    猜你喜欢
    • 2020-05-03
    • 1970-01-01
    • 2014-12-26
    • 2019-01-01
    • 2015-01-21
    • 1970-01-01
    • 1970-01-01
    • 2013-09-22
    • 2023-03-30
    相关资源
    最近更新 更多