情况:我使用单例模式,使同一时刻只能有一个DgvForm窗体实例运行
以下是DgvForm中的关键代码:C# code public partial class DgvForm : Form { private static DgvForm instance=null; public static DgvForm Instance { get { if (instance == null) instance = new DgvForm(); return instance; } } }
调用时使用C# code 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中的关键代码:C# code public partial class DgvForm : Form { private static DgvForm instance=null; public static DgvForm Instance { get { if (instance == null) instance = new DgvForm(); return instance; } } }
调用时使用C# code 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”。"
--------------------------------------------------------------------------------------------------------------
求大侠门指教.
解决方案 »
- WPF 如何实现类似游戏的地图效果
- 上帝已死,高手进来
- C#代码不明白
- dgrid的分页
- 发贴两天了!!谁能解决C#调用VB写的DLL
- using (BaseDataAccess DA = new BaseDataAccess()),在业务层访问数据访问层时为何用using()??
- ImageButton的OnClick事件不能到达指定页?与些属性或代码或环境有关吗?
- 现在还是用Visual SourceSafe 2005进行版本控制吗?有没有更好的工具来配合vs2008,或者更新的工具?
- 请问怎么给DataList中的CheckBox加上CheckedChanged事件
- 高手请进,高分相送!!!!
- (急切求助)通过"代理"调用公司邮件服务器发邮件(在线等)
- C# Windows自定义消息
第一次看到具体的单例模式!
yulitian 很热心。。
窗体被释放了,再次引用 时instance不就是null吗?为什么会出现那样的错误?
Form a = new Form();
a.Dispose();
If(a==null)
Console.WriteLine("a is null");
else
Console.WriteLine("a is not null");