gpt4 book ai didi

c#在SplitContainer中使用TreeView控件改变内容

转载 作者:行者123 更新时间:2023-11-30 22:31:14 34 4
gpt4 key购买 nike

我在 SplitContainer 的左侧有一个 TreeView,我希望在单击 TreeNode 时更改右侧的内容。我想要做的是一个设置“窗口”,例如 Putty 中的窗口,即右侧的内容可能非常复杂。

Putty
(来源:unixwiz.net)

我的想法是为每个树节点创建一个内容面板,将所有这些面板添加到右侧并根据 TreeView 上的点击显示/隐藏它们。

这是正确的方法吗?有更好的吗?将树节点与其面板链接的最佳方式是什么,例如某种 MVC?

谢谢

汤姆

最佳答案

您可以有多个面板,其中包含接受上下文对象以填充或保存相关设置的各个设计器然后在您的 TreeView 中,您可以使用每个节点的 Tag 属性来维护相关面板,并在选择它时在右侧面板中显示面板。

这是一些代码:

interface ISettingPanel
{
SettingContext Context{get;set;}
}

public BasicSettingPanel:Panel,ISettingPanel
{
....
}

public void InitTreeView
{
var node=new TreeNode();
node.Tage=new BasicSettingPanel();// or you can set the type to create the panel later
treeView.Nodes.Add(node);
}

public void AfterNodeSelected()
{
_currentPanel=null;
var selectedNode=treeView.SelectedNode;
var panel=selectedNode.Tag as Panel;
if(panel!=null)
_currentPanel=panel;
(_currentPanel as ISettingPanel).Context=this.Context;
}

关于c#在SplitContainer中使用TreeView控件改变内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9341834/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com