winForm窗体的close、dispose

最近编了一个小程序,初始运行正常,当实际使用时,忽然发现程序运行一段时间后,会自动的弹出一个系统中的messagebox。我想固然的认为是病毒在做怪吗?把程序安装到其余电脑上,故障依然,能够确定是代码的事了。小程序

仔细观察代码、故障现象后,发现是窗体在close后,窗体中的timer控件依然工做,我在timer控件到达指定的时间(10分钟)后,就会弹出故障中出现的messagebox。.net

处理:若是想关闭showdialog出的窗体,应使用dispose方法,而后将窗体变量赋值null。即便不对窗体变量赋值null,timer控件在dispose后也不会工做。问题得以解决。对象

如下摘自CSDN http://bbs.csdn.net/topics/390018880资源

一、当经过ShowDialog方法来显示一个模态窗体时:调用该窗体的Close方法后,只是隐藏了该窗体,仍然能够访问该窗体,并能够取得该窗体上控件的值,并且还能够经过ShowDialog方法从新显示该窗体。当调用该窗体的Dispose方法时,等于释放了该窗体所占有的资源,但该对象任然存在,能够访问该窗体,也能够取得窗体上控件的值,可是不能再经过ShowDialog方法从新显示该窗体。
二、当经过Show方法来显示一个非模态窗体时,状况就简单许多,由于Close方法和Dispose方法是同样的,他们都调用了带一个参数的Dispose方法。get

相关文章
相关标签/搜索