1

我试图制作一个主屏幕,我在其中打开所有其他表单,我希望它优雅,所以我做了类似的事情

在此处输入图像描述

代码就是这样

   this.IsMdiContainer = true;
            City CityForm = new City();
            CityForm.MdiParent = this;
            CityForm.Show();
            CityForm.WindowState = FormWindowState.Maximized;

但问题是当我打开另一个表格和另一个表格时..所有表格都保留下来,我认为既不有效也不聪明

所以有人有另一种方法吗?

4

5 回答 5

4

您是否考虑过为此使用选项卡式界面?类似于 Visual Studio 的编辑器部分,您将所有打开的文件(源代码和表单)作为单个选项卡?我个人认为这比 MDI 界面优雅得多。

为此,请UserControl为您的内容创建 s 而不是表单。当应该打开一个新的“视图”时,添加一个选项卡TabControl并创建相应的UserControl. 将此添加UserControl到选项卡并将Dock属性设置为Fill

这很容易,而且今天的用户更熟悉选项卡式界面而不是 MDI 界面。

于 2013-03-27T08:49:31.703 回答
2

我会使用 TabControl,这是在同一个地方呈现多个表单的一种优雅方式:http: //msdn.microsoft.com/library/system.windows.forms.tabcontrol.aspx

TabControl 包含选项卡页,这些选项卡页由您通过 TabPages 属性添加的 TabPage 对象表示。此集合中选项卡页的顺序反映了选项卡在控件中出现的顺序。用户可以通过单击控件中的选项卡之一来更改当前的 TabPage。

于 2013-03-27T08:48:44.687 回答
2

您必须保留 的单个副本City CityForm,并在每次希望创建新表单时重复使用它(作为成员变量)

看看Form.IsMdiContainer 属性,它的使用Form mdiChildForm应该接近你应该如何使用City CityForm

于 2013-03-27T08:46:17.133 回答
0

您需要将表单“停靠”到 MDI 容器中;

City CityForm f1 = new City();
City.MdiParent = this;
City.Dock = DockStyle.Fill;
City.Show();

然后,您可以在需要时关闭表格。

但是,如果您希望它自动完成,那么我会按照Thorsten Dittmar的建议查看选项卡式界面。

于 2013-03-27T08:54:54.277 回答
0

尝试使用CityForm.ShowDialog()而不是CityForm.Show().

于 2013-03-27T08:49:36.633 回答