【问题标题】:opeing form in other form , C# windows forms以另一种形式打开窗体,C# windows 窗体
【发布时间】:2013-03-27 08:43:35
【问题描述】:

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

代码是这样的

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

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

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

【问题讨论】:

  • 不使用希伯来语编写代码怎么样?
  • 代码是英文写的,我用的是希伯来文,因为这是一个学校项目..

标签: c# winforms


【解决方案1】:

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

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

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

【讨论】:

  • 是的,我现在要使用它。谢谢!
【解决方案2】:

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

看看Form.IsMdiContainer Property Form mdiChildForm 的使用应该接近你应该如何使用City CityForm

【讨论】:

  • 感谢您的回答,但我想我会使用 TabControl。 :)
【解决方案3】:

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

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

【讨论】:

  • 好吧,我对此进行了搜索,我认为这很容易使用并且看起来很棒。我会用的,谢谢!
  • 嗯,我改变它,如果我想在 tabcontrol 中显示一个表单,我需要使用这个代码吗?表格 f = 新表格(); f.TopLevel = 假; f.BackColor = 颜色.绿色; f.可见=真; tabPage1.Controls.Add(f);
【解决方案4】:

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

【讨论】:

  • 这使得表单应用程序模式化 - 这不是 OP 想要的。
【解决方案5】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-15
    相关资源
    最近更新 更多