2017-04-02 38 views
-1

我刚刚开始在Visual Studio中使用C#构建一个简单的游戏(这是我的第一个低难度游戏)。当我打开它时,它会显示一个背景图像和2个按钮,“播放”和“指令”,我希望表单在点击播放按钮后打开一个新的菜单界面,如:“Game Difficulty /角色出现“(这两个是按钮),以及一个新的背景图像。当我点击其中一个,另一个菜单等。 我可以为我创建多个设计(Form1.cs [Design1/2/3])并在它们之间交换?如果没有,那我该怎么做类似的事情呢?这是可能创建许多表单设计并在它们之间交换?

+0

Hello Ncs。欢迎来到StackOverflow。你能和我们分享你到目前为止所尝试过的吗?什么工作?什么没有?帮助我们,帮助你。你有没有考虑查阅MDI和/或Modal表格?请告诉我们您研究的路径,以便我们可以帮助您进行搜索。 – Forty3

+0

我试图创建新表单并在它们之间进行交换,这不是我所希望的。我只想让屏幕变得更改,并且应用程序可以在单个窗体上运行,而不会出现任何其他窗体 – Ncs

回答

0

在我看来,最简单的方法是将每个菜单设置为主窗体大小的“用户控件”,然后您可以添加用户控件,以随时随地显示哪个菜单沿。

例如,在解决方案资源管理器中,我将创建一个文件夹并将其命名为“菜单”。然后我会在那里创建一个新的“用户控制”。复制将要放置的窗体的宽度和高度,并将其应用于新控件。然后你可以添加你喜欢的所有按钮和图像。完成后,在主窗体中,您可以添加您在设计器中制作的“主菜单”控件。对于您想要的任何子菜单,也可以为它们创建用户控件。然后,如果您想要显示子菜单,请捕获所需按钮的单击事件,并使用FindForm()以编程方式将其添加到父窗体中。

假装DifficultyScreenControl是单击位于我的主菜单用户控件中的播放按钮后出现的屏幕。

里面的菜单的用户控制的

private void PlayButton_Click(object sender, EventArgs e) 
{ 
    DifficultyScreenControl DiffScr = new DifficultyScreen(); 
    this.FindForm().Controls.Add(DiffScr); 
} 

此外,它是取自一个好主意,或者Dispose()方法或删除这些屏幕的一个,他们不能再重新审视,因为它可以腾出资源由他们。

随时问我问题或评论改变的事情!

+0

谢谢,迄今为止,这有助于我从我的代码中获得最佳结果!有什么方法可以阻止我在DiffScr出现之前使用的按钮?我的意思是PLAY和INSTRUCTION按钮,我希望它们被禁用,直到我回到主菜单。我试图设置它们中的每一个都不可见,我可以禁用它们吗,所以它们在我的其他菜单中不运行? – Ncs

相关问题