2015-07-28 46 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或控件中樹視圖在哪裏? –