检测哪些表格确实有效?

时间:2012-05-24 15:45:48

标签: .net winforms

在我的应用程序中,用户可以打开多个表单。

有些表格是MDI,有些则不是。

如果它是活动形式,我如何以任意(MDI或非)形式检测?

来自MSDN的

Form.ActiveForm属性说明):

  

您可以使用此方法获取对当前活动的引用   表单以对表单或其控件执行操作。如果你的   应用程序是一个多文档界面(MDI)应用程序,使用   ActiveMdiChild属性以获取当前活动的MDI子级   形式。

我有两种可能性,一种用于MDI,另一种用于非MDI,但是如果我打开这两种形式,我如何检测它们中哪些是真正活跃的呢?

1 个答案:

答案 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.ActiveFormreturn the non-MDI form当前有效。如果Active窗体是MDI父窗口(主窗口),这将意味着MDI窗体处于活动状态,因此我们查看MdiParent.ActiveMdiChild

此示例将表单文本写入调试,但您可以以任何方式使用该信息。