C# 检查类是否已实例化
在我当前的程序中,我有一个主窗口和一个当按下按钮时弹出的辅助窗口。如果辅助窗口当前显示但没有焦点,则按钮将使其聚焦 此时,我正在主窗口加载时创建次窗口的新实例,并使用SubWindow.IsDisposed和SubWindow.CanFocus检查其状态 我发现,如果不在开始时创建新实例,SubWindow.IsDisposed会引发异常。只要我之前创建了子窗口的实例,检查就会正常运行C# 检查类是否已实例化,c#,C#,在我当前的程序中,我有一个主窗口和一个当按下按钮时弹出的辅助窗口。如果辅助窗口当前显示但没有焦点,则按钮将使其聚焦 此时,我正在主窗口加载时创建次窗口的新实例,并使用SubWindow.IsDisposed和SubWindow.CanFocus检查其状态 我发现,如果不在开始时创建新实例,SubWindow.IsDisposed会引发异常。只要我之前创建了子窗口的实例,检查就会正常运行 我的问题-当前版本运行良好,但是否有更好的方法?这不是一个大问题,但感觉最好是能够检查是否存在,而不必保证它以
我的问题-当前版本运行良好,但是否有更好的方法?这不是一个大问题,但感觉最好是能够检查是否存在,而不必保证它以前至少存在过一次。您可以在子窗口上检查它是否为空。如果是这种情况,则实例化子窗口,否则它就存在。您可以检查子窗口是否为空。如果是这种情况,那么实例化子窗口,否则它就存在。伏都教使我走上了正确的道路。SubWindow==null在窗口打开一次然后关闭时返回false 当前使用
(SubWindow == null || SubWindow.IsDisposed)
到目前为止,它适用于所有情况。伏都教使我走上了正确的道路。SubWindow==null在窗口打开一次然后关闭时返回false 当前使用
(SubWindow == null || SubWindow.IsDisposed)
到目前为止,它适用于所有情况。使用单例模式实现第二个窗口
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()
{
...
}
}
使用单例模式实现第二个窗口
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()
{
...
}
}
类中可以有静态计数器属性。实例化时递增,处置时递减。一般来说。。。在您的情况下,您最好遵循伏都教的建议。您可以在类中使用静态计数器属性。实例化时递增,处置时递减。一般来说。。。在你的情况下,你最好听从伏都教的建议。为什么连评论都没说就被否决了?你的平台是什么?赢表格?wpf?为什么连一句话都没说就被否决了?你的平台是什么?赢表格?wpf?