.NET - 正确的 UI 结构

.NET - Correct UI Structure

我正在开发具有以下结构的 C# 应用程序 UI:

主窗体(MDI 父窗体)

我想将分配给树视图的表单 canvas space 与允许 MDI 子项移动的表单分开。在这个程度上,我尝试了 SplitContainer 和设置MDI Child 的 TopLevel 字段设置为 'false',但是,除了新创建的 MDI Children 是在旧 MDI Child 之后创建的事实之外,我还遇到了它们没有从屏幕上正确清除的问题和其他奇怪的问题。

由于我在 C# 中使用 UIs 的经验不多,我选择的路径是否正确?是否可以更轻松地更改上述结构使其不再使用 MDI,或者是否有更简单的方法在树视图和 MDI 之间划分 canvas,而不是 SplitContainer?

干杯, 亚历克斯


更新:实际上,该解决方案似乎工作得很好,谢谢!我可能可以通过简单的检查来阻止小部件移动到错误的位置。

除此之外,是否有任何方法可以在不涉及 SplitContainer 的情况下调整 TreeView 的大小(由于 post 中提到的原因)?

面板 添加到您的主窗体,并将其停靠左侧。现在将您的 TreeView 添加到面板。根据需要调整面板大小。现在你的 MdiChildren 将占据面板右侧的空 space...

*您实际上可以简单地将 TreeView 本身停靠在窗体的左侧,但面板方法也允许您将其他控件放置在该左侧区域。仅取决于您的 UI 布局。