2015-07-28 67 views
0

我使用的是自定义的控制,其中有一个如何获得另一种形式的一种形式的treeview控件?

treeview with some nodes . 

我提供用户一个选项,通过右键点击所选择的节点添加新节点。 对于这一点,我打开一个表格,其中用户在文本框中,然后按添加按钮赋予新的名称,现在如果有相同名称没有节点再有就是加入到所选择的

treeview. 
节点

我的问题是,我无法在运行时用新名称添加节点。 我需要这个

treeview 

在我的形式,但我不能这样做。 我从我的自定义控件打开表单

addInTreeView() method call 

中,我正在打开这种形式是这样的:

Form_NewForm.ShowDialog(); 

我怎么能这样做呢?

回答

1

你不需要在你的“新形式”树形视图。如果我理解你正确,则向用户显示“新窗体”,以输入新树节点的名称。
换个角度来说吧:从你的“主窗体”中的文本框中获取输入的名字。

像这样的事情在你的MainForm保持树形视图(伪codish):

string newNodeName = null; 
Form_NewForm.FormClosing += delegate (Object s, FormClosingEventArgs e) { 
    newNodeName = textBox_newName.Text; 
} 
Form_NewForm.ShowDialog(); 

if(!String.IsNullOrEmpty(newNodeName)) { 
    //add new node to treeview 
} 

这很可能概念已经扩展到检查,如果用户取消操作,因为你不想如果用户点击“取消”,则创建一个新节点。

+0

我对代表不太了解。你能否给我更多的解释。 @Basti M –

+1

我刚刚添加了一个事件处理程序来处理'FormClosing'事件。当“新窗体”关闭时,它将检索文本框中的输入。代表只是一个匿名方法。通常你会写''Form_NewForm.FormClosing + = HandleFormClosing;'和一个方法'private void HandleFormClosing'(Object sender,FormClosingEventArgs eventargs)' –

+0

我没有得到这个,因为这整个代码会写入到newForm或控件中树视图在哪里? –