在我的应用程序中,用户可以打开多个表单。
有些表格是MDI,有些则不是。
如果它是活动形式,我如何以任意(MDI或非)形式检测?
来自MSDN的(Form.ActiveForm属性说明):
您可以使用此方法获取对当前活动的引用 表单以对表单或其控件执行操作。如果你的 应用程序是一个多文档界面(MDI)应用程序,使用
ActiveMdiChild
属性以获取当前活动的MDI子级 形式。
我有两种可能性,一种用于MDI,另一种用于非MDI,但是如果我打开这两种形式,我如何检测它们中哪些是真正活跃的呢?
答案 0 :(得分:0)
您可以将此逻辑放在您需要的位置:
if (Form.ActiveForm == null) return;
if (Form.ActiveForm == this.MdiParent)
{
if (MdiParent.ActiveMdiChild != null)
Debug.WriteLine(MdiParent.ActiveMdiChild.Text);
return;
}
Debug.WriteLine(Form.ActiveForm.Text);
Form.ActiveForm
将return the non-MDI form当前有效。如果Active窗体是MDI父窗口(主窗口),这将意味着MDI窗体处于活动状态,因此我们查看MdiParent.ActiveMdiChild
此示例将表单文本写入调试,但您可以以任何方式使用该信息。