zoukankan      html  css  js  c++  java
  • winForm窗体的close、dispose

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

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

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

    以下摘自CSDN http://bbs.csdn.net/topics/390018880

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

  • 相关阅读:
    C# 五子棋_GDI+实现
    SAE python+chrome扩展快速存储喜欢的图片(可做图床)
    C# 生成迷宫及寻路
    解决 yii2 从数据库查出来的数据都变成了字符串格式
    英语词根3
    “诸葛马前课-小六壬”全面解析
    Ubuntu 尝试
    ListView + ToolTip 的問題
    英语词根 1
    英语词根6
  • 原文地址:https://www.cnblogs.com/shuiguang/p/3460230.html
Copyright © 2011-2022 走看看