2015-01-26 50 views
0

我的工作具有以下结构的C#应用​​程序的UI:.NET - 正确的UI结构

主窗体(MDI父)

  • 树视图
  • 多个MDI Childdren,每个含:
    • 自定义用户控制

我想分离窗体的分配给树视图的画布空间和允许MDI Children移动的窗体空间。为此,我尝试了SplitContainer并将MDI Child的TopLevel字段设置为'false',但除了新创建的MDI儿童是在旧的MDI儿童之后创建的,我也遇到了问题,他们没有从屏幕和其他奇怪的问题中清除。

由于我在C#中没有很多用户界面的经验,我正在采用的路径是否正确?更改上述结构以便它不再使用MDI,还是有更简单的方式将树视图和MDI之间的画布分开,而不是SplitContainer?

干杯,亚历克斯


UPDATE:其实,解决方案似乎相当不错的工作,谢谢!我可能会通过放置一个简单的检查来阻止小部件在错误的地方移动。

除此之外,有没有什么方法可以使TreeView在不涉及SplitContainer的情况下调整大小(因为后面提到的原因)?

+0

出于好奇,为什么MDI?这是一种过时和有缺陷的UI概念。你是否考虑过tabbed文档? – Dai 2015-01-26 18:05:39

+0

MDI是从之前继承而来的。基本上,我只需要一个可移动的容器用于我的自定义用户控件。 – alexx88 2015-01-26 18:16:27

回答

0

添加面板到您的主要形式和码头它的。现在将您的TreeView添加到面板。根据需要调整面板大小。现在你的MdiChildren将占用面板右侧的空白空间...

*你实际上可以简单地将TreeView自身停靠到窗体的左侧,但面板方法允许你放置其他控件在那个左侧区域也是如此。取决于你的用户界面布局。