我在兩個窗口進行的
Form1:private void button1_Click(object sender, System.EventArgs e)
       {
           Form2 form2 = new Form2();
        form2.Show();
       }       public void add(string a)
       {
  this.treeView1.Nodes.Add(a);
       }Form2:private void button1_Click_1(object sender, System.EventArgs e)
      {
  Form1 form1 = new Form1();
  form1.add("sdd");
      }
Form1裏面有個Button點擊Form2就會顯示出來,在Form2裏面我調用了Form1裏面的一個方法,方法主要是對Form1裏面的TreeView控件作添加節點用的,這個方法是在點擊Form2裏Button后執行的。可是我現在點擊了Form2裏Button,可Form1裏的TreeView控件卻沒有節點添加進去,什麽緣故?參數已經傳過去了……

解决方案 »

  1.   

    那應該怎麽做?難道不能夠通過兩個窗体給TreeView加節點嗎?
      

  2.   

    用委托或事件来做就可以了!
    Form1:private void button1_Click(object sender, System.EventArgs e)
           {
               Form2 form2 = new Form2();
               form2.OnAddString += new Form2.AddStringCallBack(button1_OnAddString)
      form2.Show();
           }
           void button1_OnAddString(string sdd)
           {
                this.treeView1.Nodes.Add(a);
           }
           //public void add(string a)
           //{
           //  this.treeView1.Nodes.Add(a);
          // }Form2:private void button1_Click_1(object sender, System.EventArgs e)
          {
               OnAddString("sdd");
      //Form1 form1 = new Form1();
      //form1.add("sdd");
          }
          public delegate void AddStringCallBack(string sdd);
          public event AddStringCallBack OnAddString;