我正在使用Windows Form应用程序在C#中编写一个简单的sidescroller。我想要它,所以当玩家接触一个出口点时,这会立即加载一个新的等级。C#卸载和加载表单/隐藏和关闭
要实现这一点,我使用下面的代码:
if (player.Bounds.IntersectsWith(exit.Bounds))
{
Form2 myNewForm = new Form2();
myNewForm.Visible = true;
this.Hide();
}
这工作。然而,它加载了form2的许多实例 - 我只希望它加载一次。我不知道该怎么写(抱歉,我是一个新手 - 我花了一段时间才写这个代码!)。
此外,通过新窗体加载级别效率不高。有没有办法卸载打开的窗体来加载下一个窗口/实例,而不是创建另一个单独的窗口?
对不起,如果这不清楚。我做了我最好的研究+我是新的。请不要提及XNA!谢谢。
看Singleton模式:http://stackoverflow.com/questions/1403600/how-to-avoid-multiple- windows-form-in-c-sharp的实例 – 2015-01-15 15:42:25
通过阅读意见,我发现这已经解决了。你应该选择最符合你需求的答案。话虽如此,试验我自己的winforms游戏,我并不喜欢在'关卡'之间不断开启和关闭窗户。我采取的路线是有一个主窗口,其中安置了一个菜单栏和所有用户控件,代表所有级别或地图或任何其他。主窗口只是说明哪个UserControl是可见的,类似于zmechanic的答案。 – OhBeWise 2015-01-15 17:18:37