gpt4 book ai didi

c# - 我的代码有什么问题吗? (C# Winforms)

转载 作者:行者123 更新时间:2023-12-03 19:30:15 25 4
gpt4 key购买 nike

我的代码有什么问题吗?

using System;
using System.Windows.Forms;

public class MyProgram
{
Form Form1 = new Form();

public static void Main(string[] args)
{
Form1.FormClosing += new System.Windows.Forms.FormClosingEventHandler(Form1_Closing);
Form1 .Show();
}

private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
e.Cancel = true;
}
}

我收到此错误:

Error Id: CS0120, Error: An object reference is required for the non-static field, method, or property 'MyProgram.Form1_Closing(object, System.ComponentModel.CancelEventArgs)', Line: 10, Column: 30 Error Id: CS0120, Error: An object reference is required for the non-static field, method, or property

最佳答案

您的 Form 实例变量无法访问主类的 Form1_Closing() 回调,因为它是一个实例方法,但您正在静态上下文中添加事件处理程序(您的Main() 方法)。

您必须使用 MyProgram 实例添加该事件处理程序,而不是通过 Main() 方法:

MyProgram main = new MyProgram();
main.Form1.FormClosing += new FormClosingEventHandler(main.Form1_Closing);
main.Form1.Show();

或者将您的 Form 字段声明为静态字段,并将您的 Form1_Closing() 事件处理程序声明为静态方法,以便 Main() 可以使用它们:

static Form Form1 = new Form();

private static void Form1_Closing(...)

关于c# - 我的代码有什么问题吗? (C# Winforms),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4384130/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com