如何检测从子窗体打开模态窗体? (C# & VS2017)
How to detect that a modal form is opened from a child form? (C# & VS2017)
也许这是一个愚蠢的问题,但我找不到解决方案。
我有一个包含多个子项的 MDI 表单。有一个我可以说是主要的。
为了检测主体不再使用而使用了另一个子表单,我使用了非常有效的 'Leave' 事件。
问题是从 mdi 窗体执行模式类型 (.ShowDialog()) 时,Leave 事件不会在子窗体中发生。
欢迎就如何获取它提出任何建议或意见。
你可以使用 this
只使用当前的 class ,这在你的情况下是 (main) .
我是这样解决的:
从调用模式窗体的 MDI 窗体中,我搜索子窗体,如果它是“主”窗体,我调用一个 public 函数,它与 Leave 的功能相同“主要”形式的事件:
foreach (Form childform in this.MdiChildren)
{
if (childform.Name.Equals("MyMainForm"))
{
var formMain = (MyMainForm)childform;
formMain.stopTimer();
}
}
这可能是一个麻烦的解决方案,但它很实用。
也许这是一个愚蠢的问题,但我找不到解决方案。
我有一个包含多个子项的 MDI 表单。有一个我可以说是主要的。
为了检测主体不再使用而使用了另一个子表单,我使用了非常有效的 'Leave' 事件。
问题是从 mdi 窗体执行模式类型 (.ShowDialog()) 时,Leave 事件不会在子窗体中发生。
欢迎就如何获取它提出任何建议或意见。
你可以使用 this
只使用当前的 class ,这在你的情况下是 (main) .
我是这样解决的:
从调用模式窗体的 MDI 窗体中,我搜索子窗体,如果它是“主”窗体,我调用一个 public 函数,它与 Leave 的功能相同“主要”形式的事件:
foreach (Form childform in this.MdiChildren)
{
if (childform.Name.Equals("MyMainForm"))
{
var formMain = (MyMainForm)childform;
formMain.stopTimer();
}
}
这可能是一个麻烦的解决方案,但它很实用。