C# 非静态字段、方法或属性需要对象引用';System.Diagnostics.Process.CloseMainWindow()和#x27;
我收到此错误C# 非静态字段、方法或属性需要对象引用';System.Diagnostics.Process.CloseMainWindow()和#x27;,c#,C#,我收到此错误error 1非静态字段、方法或属性'System.Diagnostics.Process.CloseMainWindow()'需要对象引用。 我在Process.CloseMainWindow()上得到了那个错误 你能告诉我我的错在哪里吗?我正试图让你在c#win表单应用程序上点击x来终止这个过程 private void Form2_FormClosing(object sender, FormClosingEventArgs e) { Proce
error 1非静态字段、方法或属性'System.Diagnostics.Process.CloseMainWindow()'需要对象引用。
我在Process.CloseMainWindow()上得到了那个错误
你能告诉我我的错在哪里吗?我正试图让你在c#win表单应用程序上点击x来终止这个过程
private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
Process.CloseMainWindow();
}
您必须将方法更改为静态
private static void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
Process.CloseMainWindow();
}
进程
类用于处理外部进程
您需要获得要关闭的流程
Process process = Process.GetProcessesByName("myProcess").FirstOrDefault();
if (process != null)
{
process.CloseMainWindow();
}
但是,如果要关闭子窗体并希望它退出应用程序,请使用
Environment.Exit(0);// or whatever exit code you need
或如@Nico Schertler所述
Application.Exit();
但是,如果这是您的主窗体,并且您单击X
is,则应该在没有任何其他代码的情况下关闭。我使用了Application.Exit();-正如Nico Schertler所说。(谢谢你)
以下是工作代码:
private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
Application.Exit();
}
你为什么要这么做?有更好的方法来关闭应用程序,例如,
application.Exit()
。我从****和进程.CloseMainWindow()中得到更多错误;谢谢,使用了nico schertler的建议。而且它不是我的主窗体,它是第二个窗体,即使我关闭它,它也会让进程继续运行。