.NET Windows窗体 – 拦截Close X事件
发布时间:2020-12-14 04:17:37 所属栏目:Windows 来源:网络整理
导读:这一定是个愚蠢的问题,但我无法弄清楚.我也不能使用设计器,因为在我之前的编码器设法将GUI和逻辑集于一身,所以现在它很困惑.我必须按照旧学校的方式去做. 我有一个表格,可以通过3种方式关闭:关闭按钮,文件/关闭菜单和X图标.我希望他们都做同样的事情.拦截按
这一定是个愚蠢的问题,但我无法弄清楚.我也不能使用设计器,因为在我之前的编码器设法将GUI和逻辑集于一身,所以现在它很困惑.我必须按照旧学校的方式去做.
我有一个表格,可以通过3种方式关闭:关闭按钮,文件/关闭菜单和X图标.我希望他们都做同样的事情.拦截按钮和菜单事件很容易.实际上,两者都连接到onCloseConfig方法.顺便问一下,这个方法有更好的名称吗? private void onCloseConfig(object sender,System.EventArgs e) { if (! m_configControl.Modified) { Application.Exit(); // Or should it be this.Close(); } .... // Else present a dialog,ask if they want to save. } 所以,拦截X我试过:this.FormClosing = new FormClosingEventHandler(this.onCloseConfig);我相信这是导致无限循环的原因.我不希望这样:) FormClosed是另一种选择,但似乎为时已晚.我只想拦截点击X的事实,而不是表格正在关闭的事实.
我认为你确实希望关闭表单,你可能缺少的是检查关闭的原因,只有当它来自用户时才取消它.
private void my_FormClosing(object sender,FormClosingEventArgs e) { if (e.CloseReason == CloseReason.UserClosing) { e.Cancel = true; //I'm sorry Dave,I'm afraid I can't do that. } } 隐藏’X’设置Form.ControlBox = false,但这也将消除min / max. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- windows-server-2008-r2 – 是否需要启用Windows防火墙才能
- Windows Azure AppFabric服务是否已停止使用?
- windows-8 – 错误提交应用程序更新:打包Windows 8.1(桌面
- windows-server-2008 – 更新Windows服务器
- 在Windows XP上的R中进行多核处理 – 通过doMC和foreach
- 在windows_hyperv_admin中阻止尝试流浪者时出错
- NetCat 命令
- windows-7 – Windows 7 x64 – 无头运行的免费虚拟机主机应
- .net – 在Windows Phone 8上将图像数据缓冲区传递给Window
- WinForm自制水晶按钮
推荐文章
站长推荐
热点阅读