Form窗体点击关闭按钮并未关闭进程的解决方法

相信很多朋友在日常的编程中总会遇到各钟各样的问题,关于Form窗体点击关闭按钮并未关闭进程的解决方法就是很多朋友们都认为很难的一个学习.net的难点,下面就由达内为您介绍一下。

该问题也是因为本人Form项目开发经验不够引起的。

在开发一个小工具的过程中,因为是有多个Form窗体,多个窗体间的跳转都是如下代码:

private void button1_Click(object sender, EventArgs e) {   this.Hide();   UrlList form = new UrlList(this.cbuserid.SelectedItem.ToString());   form.Show(); }

这样子,我在UrlList窗体上面点击关闭按钮,想再要调试就会报无法将文件“obj\Debug\AutoPage.exe”复制到“bin\Debug\AutoPage.exe”。文件“bin\Debug\AutoPage.exe”正由另一进程使用,因此该进程无法访问该文件。一定要在任务管理器中关掉该进程后再调试,很是麻烦。自己猜想是因上面的this.Hide()只是隐藏了当前窗口,并没有关闭,所以我在关闭另一个窗口的时候,这个窗口其实还是未关闭的。

解决方法:在窗体的FormClosed事件中关掉所有应用窗口,代码如下:

protected virtual void Main_FormClosed(object sender, FormClosedEventArgs e) {   Application.Exit(); }

引申:在开发项目时,不管是Web项目还是Form项目,最好所有的窗体都继承基类,这样很多共公的功能就可以在基类中实现了。比如上面的的代码,如果有基类,就不用处理每个窗体的FormClosed事件了,只需处理基类的即可!

posted @ 2013-01-04 16:55  踏浪帅  阅读(1181)  评论(0编辑  收藏  举报