【发布时间】:2017-11-10 00:22:29
【问题描述】:
我已将表单声明为
Private _fUpdate As frmUpdate
有各种各样的解决方案可以检查表单是否打开和可见。
但是,如果表单已最小化且未显示在任务栏中,则它不会显示在 Application.OpenForms 中。
同样Form.IsHandleCreated 返回false 与上述窗口状态。
If Not uForm Is Nothing 会返回 True,即使该表单还没有被实例化,所以它也不可用。
是否有另一种方法来检查表单是否已加载,然后是存储窗口存在和隐藏/显示状态的变量?
【问题讨论】:
-
Application.OpenForms有时不可靠。似乎只是检查对象 varIsNot Nothing是否可以正常工作。 -
空值检查不是解决这个问题的好主意。当您关闭表单时,该变量不会为空,而是表单的
Disposed属性将为真。 -
关于不在任务栏中显示的最小化表单,如果不是设置
ShowInTaskBar属性来隐藏表单,您可以信任Visible属性。 -
如果我使用 Visible,它不会出现在 OpenForms 中。 :-(
-
@LarsTech stackoverflow.com/a/3751748/1070452 我认为它发生在其他情况下,而不是列出的情况....我让它剥落一两次并开始原则上不使用它