非静态字段、方法或属性'System.Diagnostics.Process.CloseMainWindow()'需要对象引用



I获取此错误Error 1 An object reference is required for the non-static field, method, or property 'System.Diagnostics.Process.CloseMainWindow()'

我在Process.CloseMainWindow()上得到了这个错误;

你能告诉我我的错误在哪里吗?我试图让它,当你点击c#win表单应用程序上的x时,它会扼杀这个过程。

    private void Form2_FormClosing(object sender, FormClosingEventArgs e)
    {
        Process.CloseMainWindow();
    }

Process类用于处理外部进程。

您需要获取要关闭的流程。

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,则应该在没有任何其他代码的情况下关闭。

我使用了Application.Exit();-正如尼科·舍特勒所说。(谢谢btw)

这是工作代码:

private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
    Application.Exit();
}

您必须将方法更改为静态

private static void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
     Process.CloseMainWindow();
}

最新更新