C# 在Windows窗体应用程序c中使多个窗体看起来像一个窗体

C# 在Windows窗体应用程序c中使多个窗体看起来像一个窗体,c#,forms,C#,Forms,我正在开发一个windows窗体应用程序,我需要几个不同的屏幕。一个带有选项列表的屏幕,然后当他们选择一个时,它将加载另一个屏幕。我想让它看起来很漂亮,而不是像以前那样在第一个表单的基础上再增加一个表单,现在屏幕上有两个表单。我想要一个从一个显示到下一个显示的平滑过渡,就像浏览器更改时一样。有没有一种方法可以让所有的控件都变成一种形式,或者至少有这样的外观?ie立即出现在其他大小完全相同的窗体顶部,并关闭旧窗体 我觉得这很明显,但我在任何地方都找不到。感谢您的帮助 下面是一个非常简单的MDI应用

我正在开发一个windows窗体应用程序,我需要几个不同的屏幕。一个带有选项列表的屏幕,然后当他们选择一个时,它将加载另一个屏幕。我想让它看起来很漂亮,而不是像以前那样在第一个表单的基础上再增加一个表单,现在屏幕上有两个表单。我想要一个从一个显示到下一个显示的平滑过渡,就像浏览器更改时一样。有没有一种方法可以让所有的控件都变成一种形式,或者至少有这样的外观?ie立即出现在其他大小完全相同的窗体顶部,并关闭旧窗体

我觉得这很明显,但我在任何地方都找不到。感谢您的帮助

下面是一个非常简单的MDI应用程序。它会让你知道它是如何工作的

基本概念:

您有一个主窗体MainForm,它将是其他窗体的父窗体。Set=true 创建子窗体并设置为MainForm实例。 样本:

// Create a new form to represent the child form.
Form child = new Form();
// Make the new form a child form.
child.MdiParent = this;
// Display the child form.
child.Show();
第一种方法: 使用面板,您可以在单击面板内的选定选项时将所有要隐藏或显示的控件放置在面板中。然后根据选择的选项隐藏或显示此面板

第二种方法: 您可以为每个选项使用每个windows窗体。只需使所有windows窗体大小相等,并将这些行放入每个windows窗体加载函数中即可。 此代码将在屏幕正中央打开windows窗体

 System.Windows.Forms.Screen src = System.Windows.Forms.Screen.PrimaryScreen;
 int src_height = src.Bounds.Height;
 int src_width = src.Bounds.Width;

 //put the form in the center

 this.Left = (src_width - this.Width) / 2;
 this.Top = (src_height - this.Height) / 2;
要关闭以前的表单,请使用

this.close();
要打开另一个窗口,请使用此行

Form_Name frm = new Form_Name();
frm.Show();
注意:使用this.close;在主窗体中,将关闭当前显示的所有窗口窗体(包括主窗体),这是因为它是打开其他窗口的父窗口。若我们关闭父窗口,应用程序将不得不关闭其所有子窗口

要防止此问题,请使用此。隐藏;隐藏主窗体而不是关闭它。
如果windows窗体上的控件数量较大,请使用第二种方法。否则,我建议您使用第一种方法。

将所有“子表单”放入单独的用户控件中,您的单个表单可以根据需要加载这些用户控件。