多个表单-C#在Form2上结束进程关闭
本文关键字:结束 进程 Form2 表单 -C# | 更新日期: 2023-09-27 18:01:09
我正在尝试处理多个表单,我想要的是根据组合框的选定索引更改表单的方式,我唯一能想到的方法是隐藏表单1和显示表单2,但问题是当你关闭表单2时,过程不会结束。。。我试过下面的代码
private void Form2_FormClosing(object sender, FormClosedEventArgs e)
{
foreach (var process in Process.GetProcessesByName("Process Name.exe"))
{
process.Kill();
}
}
如果没有,有没有一种方法可以在所选索引的组合框上更改表单?
尝试Application.Exit();
它退出整个应用程序并关闭所有表单和线程。
只需将Form1的实例传递给Form2的构造函数,在Form1成员中保留对它的引用
public class Form2 : Form{
private Form _form1;
public Form2(Form form1):this()
{
_form1 = form1;
InitializeComponent();
}
}
稍后您可以简单地使用该参考:
_form1.Close();
这是一种更干净的方法。其他机制也可以,比如在form1上为form2中的事件实现事件处理程序。
基于您的粘贴代码更改此:
Form2 HeadquarterForm = new Form2(this);
您还只需要closed事件处理程序,并且只对_form1调用close一次。因此,您实际上并不需要关闭事件处理程序。
进程仍在运行,因为form1仍处于活动状态,但已隐藏。
尝试使用Environmental.exit((终止进程
查看pastebin中的代码。问题是,在创建Form2时,您没有在Form2的构造函数中传递Form1。将切换用例(4(的部分更改为:
Form2 HeadquarterForm = new Form2(this);