c# - 在表单之间切换(关闭一个表单,然后打开另一个表单)

标签 c# winforms

所以我正在尝试学习一两点关于使用 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()。这也是与设计器中的两个面板交互的一种不错的方式,因为您可以从上下文菜单选项切换位于顶部的面板。

关于c# - 在表单之间切换(关闭一个表单,然后打开另一个表单),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27711774/

相关文章:

c# - 从 C# WinForm 应用程序中的循环更改标签背景色

c# - 在 gridview Asp.Net 中使用下拉列表?

UserControls的c#跨线程错误

c# - 如何在没有 CPU 过载的情况下在任务中引入准确的小延迟?

c# - 为什么app.config运行不正常?

c# - 将所有打开的窗口从任何进程移动到主屏幕的中心

c# - 使用 ProtoBuf-net 快速获取序列化数据长度的方法?

c# - WPF 中的编号列表

c# - 在 C# 中使用 System.Web.HttpUtility.HtmlEncode 向网站写入新行

c# - 如何在 C# WinForms 中使用 Windows 屏幕键盘