只打开一个子窗体
2015-06-17 09:11
183 查看
在程序处理过程中,某一个功能可能需要打开一个窗体来设置参数,我们需要用户只能打开一个子窗体,可能通过判断窗体对象是否为空来实现。
但是,用户在关闭窗体时,不能释放对象,所以要重写关闭事件:
其中,Cancel属性是获取或设置指示是否应取消事件的值。即取消当前关闭事件的执行。这样的功能很有用,比如MSDN上说的一个例子:如果程序关闭的时候数据没有保存(可以用一个Bool变量为判断),就是关闭事件中设置Cancel属性为true,这样程序就不会关闭了。
参考:https://msdn.microsoft.com/zh-cn/library/system.componentmodel.canceleventargs.cancel.aspx
//判断窗体是否重新实例化 private frmAutoSave fas = null; protected override void OnClick() { try { if (fas == null) { fas = new frmAutoSave(timer); fas.Show(); } else { fas.Show(); } } catch (Exception exp) { MessageBoxEx.Show(exp.Message + exp.StackTrace); } }
但是,用户在关闭窗体时,不能释放对象,所以要重写关闭事件:
//重写关闭事件 protected virtual void frmAutoSave_FormClosing(object sender, FormClosingEventArgs e) { e.Cancel = true; this.Hide(); }
其中,Cancel属性是获取或设置指示是否应取消事件的值。即取消当前关闭事件的执行。这样的功能很有用,比如MSDN上说的一个例子:如果程序关闭的时候数据没有保存(可以用一个Bool变量为判断),就是关闭事件中设置Cancel属性为true,这样程序就不会关闭了。
参考:https://msdn.microsoft.com/zh-cn/library/system.componentmodel.canceleventargs.cancel.aspx
相关文章推荐
- SDL2.0 学习笔记-1 windows下的第一个测试程序
- Web APP开发技巧总结
- 多IDC的数据分布设计(一)
- Zookeeper可以干什么,能带来什么
- 在Ubuntu系统上安装Ghost博客平台的教程
- IAR建立CC2530工程的设置问题及生成.hex文件
- 第16周-异常处理和命名空间-课后实践·阅读程序
- HttpServletRequest中的setAttribute问题
- 函数解一元二次方程
- 第十五周 项目1 用二进制文件处理学生成绩
- Leetcode Longest palindrome substring
- linux nice命令: 设置进程优先级
- 用线程和接口两种方法实现的java秒表
- 我的人生我自己决定2
- 调试MVC项目,不关闭 IIS EXPRESS
- css3 hover效果集
- 2015年P2P理财必看的10大常识
- 十五周项目一
- Xcode - 1
- java.sql.SQLException: 索引中丢失 IN或OUT 参数::x