0

在C#Windows应用程序中,我们可以在Tab控件中以单一形式放置多个Windows窗体吗?我们可以在C#Windows应用程序中的Tab控件中放置Windows窗体吗?

例如,它是实现它的正确方法还是应该使用用户控制?

Form2 frm = new Form2(); 
    frm.TopLevel = false; 
    frm.Visible = true; 
    frm.FormBorderStyle = FormBorderStyle.None; 
    frm.Dock = DockStyle.Fill; 
    tabControl1.TabPages[0].Controls.Add(frm); 
+0

[UserControls](http://stackoverflow.com/questions/2036481/user-control-in-windows-forms-application) – 2013-03-18 13:38:50

+0

你应该看看[用户控件](http://msdn.microsoft.com /en-us/library/a6h7e207(v=vs.71).aspx)。 – MyCodeSucks 2013-03-18 13:39:17

+0

将表单分别设计为“用户控件” - 然后将它们插入到各个选项卡中 - 绝对是组织代码的更好方式。 – Amicable 2013-03-18 13:39:25

回答

2

你不能也不需要使用Windows窗体,但是你可以做的是使用:

  • UserControl保存当前选项卡
  • GroupBox控制
  • 的所有控件
  • Panel控制
  • TableLayoutPanel控制基于某些proprtion来控制子控件的位置,所以您的UI外观在不同的屏幕尺寸和分辨率下,它们都很好。

有了这些,您可以在您的VS设计中创建UI,因此管理更改很容易。 如果控件的数量和可能的选项(如Tabs)非常大,则可以考虑使用动态加载它们的选项。但在这种情况下,项目的正确性和可维护性会变得更加困难。

2

听起来好像你可以从将单独的选项卡中的功能移到UserControl中受益。

UserControl是从主窗体中分离功能的好方法。

0

没有什么会迫使你把15个标签代码放到一个单独的c#文件中。您可以使用分部类原则将单个类拆分为多个源文件。您也可以将代码拆分为多个类 - Visual Studio只是您的一个工具,它不是您的导演。你不需要像VS指令那样行事,它只包含最常见的情况,你可以在像你这样的特殊情况下做更好的课程设计。

是的,你可以把任何标签,我的意思是从任何其他类的任何控制对象。你也可以在那里放置一个表单对象 - 在你的表单对象已经被创建的情况下,因为基础Windows API允许这样做。

相关问题