private void button1_Click(object sender, EventArgs e)
{
Form2.Show();
}
我有上面的代码,在我看来没有错误,但由于某种原因它不会执行。它说错误"非静态字段,方法或属性需要对象引用",但我错过了什么?我只有两个表单(Form1和Form2)和一个按钮。我使用了注册表清理程序,但错误仍然存在。存在另一个代码,它的工作,但这段代码使我的形式作为一个新的变量的副本,但我想显示原始的形式,就像它Visual Basic做的。
除了在类级别存储对表单的引用之外,还需要检查自上次使用它以来它是否已关闭。在这种情况下,您需要创建一个新实例(就像您第一次使用时所做的那样)。下面的例子也恢复了最小化的表单:
public partial class Form1 : Form
{
Form2 F2 = null;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
if (F2 == null || F2.IsDisposed)
{
F2 = new Form2();
F2.Show();
}
else
{
if (F2.WindowState == FormWindowState.Minimized)
{
F2.WindowState = FormWindowState.Normal;
}
F2.Activate();
}
}
}
Form2或Form1只是类的名称。在使用这些类之前,您需要创建它们的一个实例
Form2 secondaryForm = new Form2();
在此之后,您可以使用该类secondaryForm.Show();
的所有方法和属性
所以在使用/显示Form2之前,你需要创建一个实例。如果你想显示
您的原始格式
,表示实例已经创建。您需要检查创建实例的代码,并将对该表单的引用放在变量:
中。在Form1中创建变量:
private Form2 secondaryForm;
在您已经创建了原始Form2的代码中,只需使用这个变量:
this.secondaryForm = new Form2();
之后,在Form1的代码的任何地方,你可以显示Form2的下一行:
this.secondaryFomr.Show();