C# 这是否可以创建许多表单设计并在它们之间交换?

C# 这是否可以创建许多表单设计并在它们之间交换?,c#,forms,C#,Forms,我刚刚开始在Visual Studio中使用c#构建一个简单的游戏(这是我的第一个低难度游戏)。当我打开它时,它会显示一个背景图像和两个按钮,“播放”和“说明”。我希望当我单击播放按钮并打开一个新的菜单界面时,表单会发生变化,比如:“游戏难度/角色外观”(这两个按钮)和一个新的背景图像。当我点击其中一个,另一个菜单,等等。 我是否可以创建多个设计(Form1.cs[Design1/2/3])用于我的源设计和它们之间的交换?如果没有,我怎么能做类似的事情呢 在我看来,最简单的方法是将每个菜单设置为

我刚刚开始在Visual Studio中使用c#构建一个简单的游戏(这是我的第一个低难度游戏)。当我打开它时,它会显示一个背景图像和两个按钮,“播放”和“说明”。我希望当我单击播放按钮并打开一个新的菜单界面时,表单会发生变化,比如:“游戏难度/角色外观”(这两个按钮)和一个新的背景图像。当我点击其中一个,另一个菜单,等等。
我是否可以创建多个设计(Form1.cs[Design1/2/3])用于我的源设计和它们之间的交换?如果没有,我怎么能做类似的事情呢

在我看来,最简单的方法是将每个菜单设置为一个“用户控件”,即主窗体的大小,然后您可以为要显示的任何菜单添加一个用户控件

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

假设困难屏幕控件是我单击主菜单用户控件中的播放按钮后显示的屏幕

菜单用户控件的内部

另外,最好是Dispose()或删除这些屏幕,因为它们不能再次访问,因为这样可以释放它们占用的资源


请随时向我提问或评论需要更改的内容

你好,Ncs。欢迎来到StackOverflow。你能和我们分享一下你迄今为止所做的尝试吗?什么有效?什么没有?帮助我们,帮助你。你有没有考虑过MDI和/或MODE表单?请告诉我们您研究了哪些路径,以便我们可以帮助您进行搜索。我尝试创建新表单并在它们之间交换,这不是我所希望的。我只想改变屏幕,让应用程序在一个表单上运行,而不需要任何其他表单。谢谢,到目前为止,这有助于我从代码中获得最佳结果!有没有办法在DiffScr出现之前停止我正在使用的按钮?我的意思是播放和指令按钮,我希望它们被禁用,直到我回到主菜单。我试着将它们设置为不可见,我可以禁用它们吗,这样它们就不会在我的其他菜单中运行?
private void PlayButton_Click(object sender, EventArgs e)
{
    DifficultyScreenControl DiffScr = new DifficultyScreen();
    this.FindForm().Controls.Add(DiffScr);
}