C# TreeView详细架构问题

C# TreeView详细架构问题,c#,winforms,architecture,treeview,master-detail,C#,Winforms,Architecture,Treeview,Master Detail,我正在开发windows窗体应用程序,我的客户希望在左侧有一个树状视图,当单击该节点时,用户可以在右侧的详细屏幕中工作。最简单的方法是创建禁用的面板,直到单击相应的节点。然而,这个应用程序正在成长,而且有太多的应用程序是以主要形式存在的 我想知道是否有可能每个节点都有一个表单,它将打开并扩展到右侧的详细区域,然后在完成后关闭。这样的话,我没有一个单一的整体形式,但我不知道如何去做 有人知道怎么做那样的事吗 谢谢。您应该尝试使用UserControls 基本上,每个都是一个表单(或多或少),可以像

我正在开发windows窗体应用程序,我的客户希望在左侧有一个树状视图,当单击该节点时,用户可以在右侧的详细屏幕中工作。最简单的方法是创建禁用的面板,直到单击相应的节点。然而,这个应用程序正在成长,而且有太多的应用程序是以主要形式存在的

我想知道是否有可能每个节点都有一个表单,它将打开并扩展到右侧的详细区域,然后在完成后关闭。这样的话,我没有一个单一的整体形式,但我不知道如何去做

有人知道怎么做那样的事吗


谢谢。

您应该尝试使用
UserControl
s


基本上,每个都是一个表单(或多或少),可以像添加其他控件一样添加到主表单中。

我将从每个页面的面板继承,将每个面板派生对象的实例附加到每个TreeView节点的Tag属性,并显示它(Dock=Fill)选择节点时。

您可以使用拆分控件并在右侧加载表单,但需要正确排列表单。正如@codethis所提到的,usercontrol最好能够处理这些问题,因为它们的代码是单独编写的。只需传递参数(从节点选择)


您可能需要创建多个用户控件,并根据屏幕变化将它们放置在表单中。

谢谢您的回答,但是,我需要远离面板,因为面板的所有代码都在一个表单中,我不希望在一个表单中有那么多代码。大部分应用程序将通过单击树视图中的一个元素来驱动,该元素将在右侧的详细信息区域显示一个UI。我需要将这些UI拆分为不同形式的容器。请再次阅读我的答案-您需要创建从Panel继承的类,并在表单中使用这些类。感谢您抽出时间回复我的评论。感谢您的建议。我一开始就考虑过用户控件,但回避了它们,因为似乎我必须编写大量代码来公开数据、事件和方法。然而,实际的表单很少与自身之外的组件进行交互。所以现在看来这是一个好办法。一个问题,你如何管理尺寸?您是否将用户控件放在面板中,然后将其设置为父容器中的doc?对于我正在处理的应用程序,我有类似的设置。我有一个splitcontainer,左边是treeview,右边是usercontrol。我总是将其停靠以填充,并将usercontrol中控件的锚点设置为适当的锚点。你说的锚点是什么意思?你能发一个片段吗?Thank.controls都有一个锚点属性,您可以设置该属性,使控件扩展到窗体的大小,与父容器的侧面保持相同的距离