2013-05-17 89 views
0

我目前有一个类处理我的树视图和其他winForm组件。从其他形式刷新树视图组件

我想使用另一个表单作为我的输入,一旦我按下保存按钮,它应该更新我的treeview组件在另一个表单上。到目前为止,我尝试过的没有奏效。

这里是我的代码:

* mainDisplay是我的形式,其中包括我的组件和存储我的变量保存数据

在这里,我我的日期加载到树形视图

public void mainDisplay_Load(TreeNode input) 
    { 
     treeView1.BeginUpdate(); 
     foreach (data x in mydata1) 
     { 
      Console.WriteLine(x.getName()); 
      if (x.getName() != null) 
      { 
       treeView1.Nodes.Add(input); 
      } 

     } 
     treeView1.Refresh(); 

    } 

这里是我对OTHER表单的按钮动作:

private void button1_Click(object sender, EventArgs e) 
    { 
     if (!(String.IsNullOrEmpty(getnamebox.Text))) ; 
     { 
      mainDisplay putdata = new mainDisplay(); 

      name = getnamebox.Text; 
      pass = getpassbox.Text; 
      url = geturlbox.Text; 
      notes = getnotebox.Text; 

      data newData = new data(name, pass, notes); 
      mainDisplay.mydata1.Add(newData); 

      TreeNode mytree = new TreeNode(name); 
      putdata.mainDisplay_Load(mytree); 

      this.Hide(); 

     } 

任何提示会不胜感激。

+0

实际显示窗体的位在哪里? '因为我理解它'mainDisplay'是一个表单,对吗?加载它的部分在哪里?我看到你创建了一个新的对象,然后你调用一个加载方法,但是在哪里调用Show()方法呢?没有这个,你基本上是在创建它的一个实例,粘贴它的东西,一旦这个方法结束,它就立即被处理了。 –

回答

1

您刚刚在某处(内存中)创建了一个全新的主显示窗体,并为其添加了一个树节点。

您需要向前传递主显示的引用(通常在初始化函数中或根据设置的内容追溯第二个窗体的父级),然后使用对实际主窗体的引用来更新树。