在表单之间切换(关闭一个表单,然后打开另一个表单)
本文关键字:表单 一个 然后 另一个 之间 | 更新日期: 2023-09-27 18:35:39
所以我正在尝试学习一两件关于使用 c# 编码的事情,我觉得很烦人的是在表单之间切换的方式。
假设对于一个游戏,你想转到选项面板,当你点击按钮到达那里时,它会关闭该窗口(form1)并为我的应用程序打开一个新窗口(form2)。
像这样打开和关闭窗口看起来不是很好,所以我想知道我能做些什么来让它从 form1 切换到 form2,而无需关闭 form1 而不是在新窗口中打开 form2(一切都在主窗口(form1)上切换)。
听起来可能有点令人困惑,但希望你明白我的意思。
到目前为止,我正在使用的代码在表单之间切换:
ChangeOptions optionchanger = new ChangeOptions ();
this.Hide();
optionchanger.Show();
可以将两个面板添加到单个窗体,每个面板都包含原本会添加到两个窗体之一的控件。 然后通过更改面板的可见性或 Z 顺序在面板之间切换。 这在 Windows 窗体设计器中有点棘手,因为您必须设计两个面板,然后将它们放置在包含窗体上的同一位置。
正如@ryanyuyu指出的那样,您可以将Dock
属性设置为DockStyle.Fill
并使用Control.BringToFront
或Control.SendToBack()
切换位于顶部的面板。 这也是与设计器中的两个面板交互的不错方式,因为您可以从上下文菜单选项切换顶部的面板。
要真正拥有两个表单,您唯一的选择是显示一个对话框。隐藏当前窗口当然是可选的。
但是,您可以:
-
将给定"窗体"上的所有控件分组到
Panel
或GroupBox
中,然后显示/隐藏容器控件。 -
将所有控件放入
UserControl
s 中,并在主窗体上具有每个UserControl
的实例。然后,可以显示/隐藏控件。
我更喜欢第二种方法,因为它使封装更紧密。由于您已经有两个窗体,因此很容易转换为用户控件。