情况:我使用单例模式,使同一时刻只能有一个DgvForm窗体实例运行
以下是DgvForm中的关键代码: public partial class DgvForm : Form
{
private static DgvForm instance=null; public static DgvForm Instance
{
get {
if (instance == null)
instance = new DgvForm();
return instance;
}
}
}调用时使用 private void btnDgv_Click(object sender, EventArgs e) { DgvForm.Instance.Show(); DgvForm.Instance.BringToFront(); }这样可以使同一时刻只有一个DgvForm实例在运行
我试了几次,发现一个问题:
点击btnDgv_Click一次,显示出DgvForm窗体,没有问题
再次点击btnDgv_Click一次,显示出刚才的DgvForm窗体,没有问题
把DgvForm事例关闭,再次点击btnDgv_Click,出错!
以下是错误信息:
--------------------------------------------------------------------------------------------------------------
未处理 System.ObjectDisposedException
Message="无法访问已释放的对象。\r\n对象名:“DgvForm”。"
--------------------------------------------------------------------------------------------------------------
求大侠门指教.
以下是DgvForm中的关键代码: public partial class DgvForm : Form
{
private static DgvForm instance=null; public static DgvForm Instance
{
get {
if (instance == null)
instance = new DgvForm();
return instance;
}
}
}调用时使用 private void btnDgv_Click(object sender, EventArgs e) { DgvForm.Instance.Show(); DgvForm.Instance.BringToFront(); }这样可以使同一时刻只有一个DgvForm实例在运行
我试了几次,发现一个问题:
点击btnDgv_Click一次,显示出DgvForm窗体,没有问题
再次点击btnDgv_Click一次,显示出刚才的DgvForm窗体,没有问题
把DgvForm事例关闭,再次点击btnDgv_Click,出错!
以下是错误信息:
--------------------------------------------------------------------------------------------------------------
未处理 System.ObjectDisposedException
Message="无法访问已释放的对象。\r\n对象名:“DgvForm”。"
--------------------------------------------------------------------------------------------------------------
求大侠门指教.
{
get {
if (instance == null || instance.IsDisposed)
instance = new DgvForm();
return instance;
}
}