在下做了一个软件(Winform),主窗口是“Form1.cs”,但是程序的启动窗口是“Login.cs”,从“Login.cs”是可以跳转到“Form1.cs”的。现在的问题是:
关闭主窗口Form1.cs后(也就是关闭软件了),但是在任务管理器中还存在这个进程,貌似没有释放资源似地。
1、请问这是什么原因造成的?2、是不是要调用“Form1.cs”的“FormClosing”或是“FormClosed”事件来释放资源,如果是应该怎样编写代码才可以在关闭窗口时关闭线程。
注:其实启动窗口“Login.cs”还开着,把启动窗口给隐藏了再显示主窗口。
代码://界面跳转
Form1 frm1 = new Form1();
frm1.Show();
this.Hide();但是在“Form1.cs”中的“FormClosing”事件里加了如下代码,想关闭"Login.cs"窗口,但是不行啊。
代码:
Login login = new Login();
login.Close();问题3、是不是“Login.cs”窗体关闭了,整个软件就关闭了,如果是应该怎样关闭?
问题4、有一个网友是这么说的:
this.Dispose(true);
this.Close();
Application.Exit();
请问这是什么意思?放在“Form1.cs”中的“FormClosing”事件里就行了吗?
关闭主窗口Form1.cs后(也就是关闭软件了),但是在任务管理器中还存在这个进程,貌似没有释放资源似地。
1、请问这是什么原因造成的?2、是不是要调用“Form1.cs”的“FormClosing”或是“FormClosed”事件来释放资源,如果是应该怎样编写代码才可以在关闭窗口时关闭线程。
注:其实启动窗口“Login.cs”还开着,把启动窗口给隐藏了再显示主窗口。
代码://界面跳转
Form1 frm1 = new Form1();
frm1.Show();
this.Hide();但是在“Form1.cs”中的“FormClosing”事件里加了如下代码,想关闭"Login.cs"窗口,但是不行啊。
代码:
Login login = new Login();
login.Close();问题3、是不是“Login.cs”窗体关闭了,整个软件就关闭了,如果是应该怎样关闭?
问题4、有一个网友是这么说的:
this.Dispose(true);
this.Close();
Application.Exit();
请问这是什么意思?放在“Form1.cs”中的“FormClosing”事件里就行了吗?
frm1.Show();
this.Hide();
你这个只是隐藏了启动窗体而以,所以要在其它窗体这个事件中加入退出程序代码
private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
System.Environment.Exit(0);
}
{
System.Diagnostics.Process[] processList = System.Diagnostics.Process.GetProcesses();
foreach (System.Diagnostics.Process p in processList)
{
if (p.ProcessName == process)
{
p.Kill();
}
}
}软件的关闭: System.Environment.Exit(0);