System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'XXXX'.
今天写C#窗体遇到这样的问题,报错在Application.Run(new frmMain())处,经过查找,终于找到原因了。
代码逻辑:假如有两个窗体A和B,A和B的TopMost均为true,A的Load事件中用ShowDialog模态打开B,,当B关闭窗体B时B的DialogResult为Cancel时关闭A。
运行程序,如期打开的是窗体B,设置B.DialogResult为Cancel关闭窗体B,返回A的Load事件里,调用Close关闭窗体A,这时出错了,如题。原因就是因为B的TopMost为True,把B的TopMost改成false就好了。具体C#底层怎么执行的我不知道,但好像TopMost为True时要经过很特殊的处理。
第一次写博客,分享一下