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的建议。而且它不是我的主窗体,它是第二个窗体,即使我关闭它,它也会让进程继续运行。