检查类是否已实例化

时间:2010-05-28 20:24:43

标签: c#

在我当前的程序中,我有一个主窗口和一个按下按钮时弹出的辅助窗口。如果当前显示辅助窗口但没有焦点,则按钮将使其聚焦。

此时我正在创建辅助窗口的新实例,因为主窗口加载并简单地使用SubWindow.IsDisposed和SubWindow.CanFocus

检查其状态

我发现如果我不在开头创建一个新实例,SubWindow.IsDisposed会抛出异常。只要我之前创建了一个SubWindow实例,检查运行正常。

我的问题 - 当前版本运行正常,但有更好的方法吗?这不是一个大问题,但感觉能够检查存在而不必保证它至少存在过一次就感觉更好。

4 个答案:

答案 0 :(得分:4)

您可以检查SubWindow以查看它是否为空。如果是这种情况,则实例化SubWindow,否则它就存在。

答案 1 :(得分:1)

VoodooChild让我走上正轨。 <{1}}在窗口打开一次然后关闭时返回false。

目前正在使用

(SubWindow == null)

适用于目前为止的所有案例。

答案 2 :(得分:1)

您可以在班级中拥有静态计数器属性。实例化增加,处置减少。总的来说......在你的情况下,你最好遵循VoodooChild的建议。

答案 3 :(得分:0)

使用单例模式实现第二个窗口。


public class SecondForm : Form
{
       public static m_myInstance= new SecondForm();
       public static bool m_visible = false;

       public SecondForm ()
       {
              InitializeComponent()               
       }

       public SecondForm Instance()
       {
            return m_myInstance;
       }

      public static void Show()
      {
          ...
      }

}