2013-05-17 33 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

您剛剛在某處(內存中)創建了一個全新的主顯示窗體,併爲其添加了一個樹節點。

您需要向前傳遞主顯示的引用(通常在初始化函數中或根據設置的內容追溯第二個窗體的父級),然後使用對實際主窗體的引用來更新樹。