该问题也是因为本人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事件了,只需处理基类的即可! }