非静态字段、方法或属性"System.Windows.Forms.Form.Close()"需要对象引用



此错误在我的情况下是什么意思?

非静态字段,方法或属性'system.windows.form.form.form.close()'

需要一个对象引用

ps:当我调用form2.close()

时,我会在行中遇到错误

这是我的代码:

    BackgroundWorker bg = new BackgroundWorker();
    bg.DoWork += new DoWorkEventHandler(bg_DoWork);
    bg.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bg_RunWorkerCompleted);
    bg.RunWorkerAsync();
    Form2 Form2 = new Form2();
    Form2.ShowDialog();
    private void bg_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
    {
        object result = e.Result;
        Form2.Close();
    }

您在方法中指定了一个form2的实例,并希望在另一种方法中使用它。当您以一种方法指定实例时,它在其他方法中不可用,因为它超出了范围。您必须将您的form2实例放在例如如果这两种方法都在同一类中,则在您的课程的私人领域中。

更改变量名称。可变名称的名称不应与名称类(form2)

具有相同的名称
Form2 _myForm = new Form2();
_myForm.Close();

最新更新