对象引用对于非静态字段是必需的
问题描述:
namespace Pong
{
public partial class Menu : Form
{
public Menu()
{
InitializeComponent();
}
private void pictureBox1_Click(object sender, EventArgs e)
{
}
private void PlayButton_Click(object sender, EventArgs e)
{
PongForm form = new PongForm();
PongForm.Show();
this.Close();
}
private void ExitButton_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
有人可以解释为什么我得到一个错误吗?我在网上看了一下,认为它应该可以工作。我试图在点击按钮时更改为新表单。对象引用对于非静态字段是必需的
答
更改“PongForm.Show();” 。以“form.Show() 要eloborate:您正试图调用类的,不是你创建的实例
答
在此功能,您应该参考form
,不PongForm
:
private void PlayButton_Click(object sender, EventArgs e)
{
PongForm form = new PongForm();
form.Show();
this.Close();
}
答
只添加到别人怎么说,你可能不希望的打开同一个形式多。我不能发表评论,否则我就那样做吧。希望这能解决你的问题。
if (Application.OpenForms["PongForm"] != null) { Application.OpenForms["PongForm"].WindowState = FormWindowState.Normal; Application.OpenForms["PongForm"].BringToFront(); } else { PongForm form = new PongForm(); form.Show(); }
现在走了错误但新的表单并没有显示它只是关闭了当前的表单。 – RossP28