在我当前的程序中,我有一个主窗口和一个按下按钮时弹出的辅助窗口。如果当前显示辅助窗口但没有焦点,则按钮将使其聚焦。
此时我正在创建辅助窗口的新实例,因为主窗口加载并简单地使用SubWindow.IsDisposed和SubWindow.CanFocus
检查其状态我发现如果我不在开头创建一个新实例,SubWindow.IsDisposed会抛出异常。只要我之前创建了一个SubWindow实例,检查运行正常。
我的问题 - 当前版本运行正常,但有更好的方法吗?这不是一个大问题,但感觉能够检查存在而不必保证它至少存在过一次就感觉更好。
答案 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()
{
...
}
}