如何在选择时在同一窗口中显示树节点的详细信息,但与层次树分开 到目前为止,我已经使用以下代码在treeview类中成功显示了详细信息:
private void buttonCreateTree_Click(object sender, EventArgs e)
{
if (xd != null)
{
TreeNode rootNode = new TreeNode(xd.Root.FirstNode.ToString());
AddNode(xd.Root, rootNode);
treeView1.Nodes.Add(rootNode);
}
if (xd == null)
{
MessageBox.Show("No saved XML file!");
}
}
我读过关于标签的内容,但由于我不太喜欢Windows窗体,我不知道如何正确实现它们。解决方案的正确语法是什么? 更新:树节点的细节是它的子组件,其自定义属性我创建像creationDate,LastAccessDate和LastModifiedDate,因此它需要在同一窗口中显示树节点的子元素,但除了层次结构树之外?这甚至没有意义O.o
答案 0 :(得分:1)
不确定这是不是你想要的,或者如果你是这样,但你可以玩这个:
在表单中添加Panel panel1
并挂钩此事件:
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
if (panel1.Controls.Count == 0)
{
panel1.Controls.Add(new TreeView());
panel1.Controls[0].Dock = DockStyle.Fill;
}
TreeView tv = panel1.Controls[0] as TreeView;
if (tv != null)
{
tv.Nodes.Clear();
// option 1 deep copy:
TreeNode tc = (TreeNode)e.Node.Clone();
tv.Nodes.Add(tc);
// option 2 shallow copy, 1 level
TreeNode tn = tv.Nodes.Add(e.Node.Text);
foreach (TreeNode cn in e.Node.Nodes)
tn.Nodes.Add(cn.Text);
}
tv.ExpandAll();
}
选择两个选项之一并尝试..