如何关闭表单并打开另一个

时间:2016-05-09 17:44:34

标签: c#

目前正在学习用C#编写代码。我使用过代码

Form1.Hide();
Music_Menu.Show();

表单的名称是正确的,并且相信这应该有效但是当我将鼠标悬停在文本上时出现此错误:

  

访问非静态字段成员或者需要对象引用   物业c#

1 个答案:

答案 0 :(得分:1)

我打赌Music_Menu是你的表格的名字。

您需要创建表单的INSTANCE。 VB在幕后做了这个""但C#要求你做对。

在Program.Main()的某个地方,我打赌你有一条线:

Application.Run(new Form1());

您需要保留该引用。 Program类中的私有静态字段应该可以工作。

private static Form1 _myForm1;
private static Music_Menu _myMusic_Menu;

然后在Main()方法中,将其更改为:

_myForm1 = new Form1();
Application.Run(_myForm1);

然后你的代码(切换的地方)应该是(在Program.cs中):

_myForm1.Hide(); 
_myMusic_Menu = new Music_Menu();
_myMusic_Menu.Show();

或者,如果您想在Form1中运行代码(并假设您想要返回到Form1的实例:

this.Hide();
var myMusic_Menu = new Music_Menu();
myMusic.ShowDialog();
this.Show();

根据您的情况,您可能会有一些范围问题需要理顺,但这应该会让您朝着正确的方向前进。