以其他形式操作表单,C#windows表单

以其他形式操作表单,C#windows表单,c#,winforms,C#,Winforms,我试着制作一个主屏幕,打开其中的所有其他窗体,我希望它是优雅的,所以我做了类似的事情 代码是这样的 this.IsMdiContainer = true; City CityForm = new City(); CityForm.MdiParent = this; CityForm.Show(); CityForm.WindowState = FormWindowState.Maximized

我试着制作一个主屏幕,打开其中的所有其他窗体,我希望它是优雅的,所以我做了类似的事情

代码是这样的

   this.IsMdiContainer = true;
            City CityForm = new City();
            CityForm.MdiParent = this;
            CityForm.Show();
            CityForm.WindowState = FormWindowState.Maximized;
但问题是当我打开另一个窗体和另一个窗体时。。所有的表格都保留了下来,我认为这不是有效和明智的


那么有人有别的办法吗

您必须保留一份
城市表单
的副本,并在每次创建新表单时重复使用该副本(作为成员变量)


查看并使用
表单mdiChildForm
,该表单应接近您应该如何使用
城市表单

您必须保留一份
城市表单
的副本,并在每次创建新表单时重新使用该副本(作为成员变量)


查看并使用
表单mdiChildForm
,该表单应接近您应该如何使用
城市表单

我将使用TabControl,在同一位置显示多个表单是一种优雅的方式:

TabControl包含由TabPage表示的选项卡页 通过TabPages属性添加的对象。制表符的顺序 此集合中的页面反映选项卡在列表中的显示顺序 控制用户可以通过单击以下选项之一更改当前选项卡页: 控件中的选项卡


我会使用TabControl,这是一种在同一位置呈现多种表单的优雅方式:

TabControl包含由TabPage表示的选项卡页 通过TabPages属性添加的对象。制表符的顺序 此集合中的页面反映选项卡在列表中的显示顺序 控制用户可以通过单击以下选项之一更改当前选项卡页: 控件中的选项卡


你是否考虑过使用标签界面?类似于VisualStudio的编辑器部分,其中所有打开的文件(源代码和表单)都作为单个选项卡?我个人认为这比MDI接口要优雅得多。

为此,请为内容创建
UserControl
s而不是表单。当需要打开一个新的“视图”时,在
选项卡控件
中添加一个选项卡,并创建相应
用户控件
的实例。将此
UserControl
添加到选项卡,并将
Dock
属性设置为
Fill


<>这是非常容易的,现在的用户对标签界面的支持比MDI接口更大。

你是否考虑过使用标签界面?类似于VisualStudio的编辑器部分,其中所有打开的文件(源代码和表单)都作为单个选项卡?我个人认为这比MDI接口要优雅得多。

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


这很简单,而且现在的用户更喜欢选项卡式界面,而不是MDI界面。

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

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

City CityForm f1 = new City();
City.MdiParent = this;
City.Dock = DockStyle.Fill;
City.Show();
然后,您可以根据需要关闭表单


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

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

City CityForm f1 = new City();
City.MdiParent = this;
City.Dock = DockStyle.Fill;
City.Show();
然后,您可以根据需要关闭表单


但是,,如果你想让它自动完成,那么我会像Thorsten Dittmar所建议的那样查看一个选项卡式界面。

这使得表单应用程序模式-这不是OP想要的。这使得表单应用程序模式-这不是OP想要的。我对此感到满意,我认为这很容易使用,看起来很棒。我会用的,谢谢!嗯,我改变了它,如果我想在tabcontrol中显示一个表单,我需要使用这个代码吗?表格f=新表格();f、 顶层=假;f、 背景色=颜色。绿色;f、 可见=真实;tabPage1.控件.添加(f);这里有一个例子,看一看:好吧,我对此感到惊讶,我认为这很容易使用,看起来很棒。我会用的,谢谢!嗯,我改变了它,如果我想在tabcontrol中显示一个表单,我需要使用这个代码吗?表格f=新表格();f、 顶层=假;f、 背景色=颜色。绿色;f、 可见=真实;tabPage1.控件.添加(f);这里有一个例子,看一看:谢谢你的回答,但我想我会使用TabControl.:)谢谢你的回答,但我想我会使用TabControl.:)是的,我现在就用。谢谢是的,我现在就用。谢谢不用希伯来语写代码怎么样?代码是用英语写的,我用希伯来语文本,因为这是一个学校项目。不用希伯来语写代码怎么样?代码是用英语写的,我用希伯来语文本,因为这是一个学校项目。。