C# 如何检查子窗体是否最小化?

C# 如何检查子窗体是否最小化?,c#,winforms,visual-studio-2010,C#,Winforms,Visual Studio 2010,我实现了一个名为checkopen的方法,用于检查表单是否打开 private bool CheckOpened(string name) { FormCollection fc = Application.OpenForms; foreach (Form frm in fc) { if (frm.Text == name) { return true; } } return fal

我实现了一个名为checkopen的方法,用于检查表单是否打开

private bool CheckOpened(string name)
{
    FormCollection fc = Application.OpenForms;

    foreach (Form frm in fc)
    {
        if (frm.Text == name)
        {
            return true;
        }
    }
    return false;
}
以同样的方式我想检查表单是否最小化。 通过该检查,我希望在StatusStrip中显示最小化状态,最小化表单的名称将显示在该状态条上,当用户单击表单的名称时,它将显示出来


如何进行该检查?

使用相同的检查但查询属性:

private bool CheckMinimized(string name)
{
    FormCollection fc = Application.OpenForms;

    foreach (Form frm in fc)
    {
        if (frm.Text == name && frm.State == FormWindowState.Minimized)
        {
            return true;
        }
    }
    return false;
}

您可以通过阅读
Form.WindowState
属性来检查
表单是否最小化,该属性返回
FormWindowState.Normal
FormWindowState.Maximized
FormWindowState.minimized

关于您的代码,我认为
|124;
(或其他)应该是
&
(以及).仍然不工作我已经试过了…这不是回答你问题的评论,抱歉。这是关于您当前代码的注释,对于它遇到的第一个可见表单,它将返回
true
。我看到你同时修改了你的代码,所以现在没有任何意义。到底是什么不起作用?您正在询问如何确定表单是否被模拟。为什么答案不起作用?发生了什么?最小化表单的标准行为(可能您正在使用MDI应用程序?)不会出现在StatusStrip上。因此,您可能实际上没有最小化表单,这解释了为什么建议检查
WindowState
属性的答案对您不起作用:您没有修改
WindowState
。所以你必须告诉我们你正在做什么来“最小化”StatusStrip中的表单,然后,这将回答您关于如何检查它们是否最小化的问题--只需颠倒过程。仍然不起作用…正在创建另一个相同形式的实例。正如我在OP上所说的一样:
|
应该是一个
&
,代码才能正常工作。