2014-10-20 30 views
0

我想创建一个对话框,用户在TreeView中选择一个节点,以便他可以将一些数据保存到该节点。TreeView添加到UI中不显示的对象

树本身是在一个单独的控件(用于浏览/打开节点内容)中创建的,我的想法是我应该在保存控件中使用该树。

我的构造是这样的:

public FrmSaveToRepository(TreeView tree) 
{ 
    InitializeComponent(); 
    this.treeView = tree; 
} 

但当形式持有,控制弹出的TreeView控件是空的。我错过了一步吗?

我打开我的表单与此代码:

var frm = new FrmSaveToRepository(tree); 
frm.Show(); 
+0

如何调用'FrmSaveToRepository'? – Rahul 2014-10-20 12:06:00

+0

你在哪里添加treeview?我的意思是你把它添加到新的形式与this.Controls.Add(this.treeView)? – Vajura 2014-10-20 12:06:47

+0

@Rahul FrmSaveToRepository是我的表单的构造函数。 – 2014-10-20 12:07:38

回答

1

权利,使老节点添加到新树正确的方法是:

public FrmSaveToRepository(TreeView tree) 
{ 
    InitializeComponent(); 
    foreach (TreeNode node in tree.Nodes) 
    { 
     this.treeView1.Nodes.Add(node.Clone() as TreeNode); 
    } 
} 

但仍然意味着所有的事件而处理程序必须在新树中分开实施。