2015-08-03 7 views
0

Я хотел бы добавить узел дерева к родительской форме, хотя форма ребенок однако он не появляется на TreeViewя не могу добавить TreeNode в Treeview

и я также добавить TreeView ImageIndex

пожалуйста, дайте мне знать, как добавить treenode

// [childform] 
private void button1_Click(object sender, EventArgs e) 
{ 
    main _main = new main(); 
    _main.SetFtpClient(); 
} 

//[MainForm] 
private void toolStripButton1_Click(object sender, EventArgs e) 
{ 
    _ConnectForm.StartPosition = FormStartPosition.CenterParent; 
    _ConnectForm.ShowDialog(this); 
} 

public void SetFtpClient() 
{ 
    TreeNode svrNode = new TreeNode("server", 0, 0); 
    svrNode.Nodes.Add("SE", "seoul", 0, 0); 
    svrNode.Nodes.Add("DJ", "seoul1", 0, 0); 
    svrNode.Nodes.Add("BS", "seoul2", 0, 0); 

    TreeNode netNode = new TreeNode("network", 1, 1); 
    netNode.Nodes.Add("T1", "Cable", 1, 1); 
    netNode.Nodes.Add("56K", "Modem", 1, 1); 
    netNode.Nodes.Add("3G", "Wireless", 1, 1); 
    tv_ftp.Nodes.Add(svrNode); 
    tv_ftp.Nodes.Add(netNode); 
} 

ответ

1

Существует много способов сделать это. Один из способов - иметь ссылку на вашу основную форму в вашей дочерней форме. Добавьте параметр в конструктор дочерней формы. Предположим, что имя дочерней формы ConnectForm и основная форма: MainForm.

using System; 
using System.Windows.Forms; 

namespace TreeViewDemo 
{ 
    public partial class ConnectForm : Form 
    { 
     Form parent; // a reference of the main form 

     public ConnectForm(Form form) 
     { 
      InitializeComponent(); 

      // set a reference of the main form 
      parent = form; 
     } 

     void Button1Click(object sender, EventArgs e) 
     { 
      // you have to cast it to the MainForm first, 
      // otherwise the method SetFtpClient is not accessible 
      var _main = (MainForm) parent; 
      _main.SetFtpClient(); 
     } 
    } 
} 

Затем вы передаете основную форму в свою дочернюю форму с использованием параметризованного конструктора.

using System; 
using System.Windows.Forms; 

namespace TreeViewDemo 
{ 
    public partial class MainForm : Form 
    { 
     public MainForm() 
     { 
      InitializeComponent(); 
     } 

     void Button1Click(object sender, EventArgs e) 
     { 
      // create an instance of child form, and pass the main form into it 
      var _ConnectForm = new ConnectForm(this); 

      _ConnectForm.StartPosition = FormStartPosition.CenterParent; 
      _ConnectForm.ShowDialog(this); 
     } 

     public void SetFtpClient() 
     { 
      TreeNode svrNode = new TreeNode("server", 0, 0); 
      svrNode.Nodes.Add("SE", "seoul", 0, 0); 
      svrNode.Nodes.Add("DJ", "seoul1", 0, 0); 
      svrNode.Nodes.Add("BS", "seoul2", 0, 0); 

      TreeNode netNode = new TreeNode("network", 1, 1); 
      netNode.Nodes.Add("T1", "Cable", 1, 1); 
      netNode.Nodes.Add("56K", "Modem", 1, 1); 
      netNode.Nodes.Add("3G", "Wireless", 1, 1); 
      tv_ftp.Nodes.Add(svrNode); 
      tv_ftp.Nodes.Add(netNode); 
     } 
    } 
} 
Смежные вопросы