單擊Form1窗體的按鈕,會將窗體Form2加入到Form1的Panel1中,
Form2 fau = new Form2(functionid, curUserName);
            fau.TopLevel = false;
            fau.StartPosition = FormStartPosition.Manual;
            fau.Location = new System.Drawing.Point(x + 100, y);
            this.panel1.Controls.Add(fau);
            fau.Show();  //注:此處因為加入到Panel1中,所以不能用ShowDialog()。如果是用ShowDialog()應該就行
            List<string> alold = fau.aryold;
            List<string> alnew = fau.arynew;
            AddTreeviewNode();
在Form2中輸入信息 單擊確定按鈕後會產生上面的aryold,arynew值,然後Form1會根據此值調用函數。謝謝!

解决方案 »

  1.   

    那你把Form1传到Form2去吧
    Form1: Form2 fau = new Form2(functionid,curUserName,this);Form2: public Form2(string functionId,string curUsername,Form1 f)
      

  2.   

    在Form2中輸入信息   單擊確定按鈕後會產生上面的aryold,arynew值,然後Form1會根據此值調用函數。 
    -------------------------------------------
    Form2建立一个事件,Form1中创建Form2实例的时候绑定该事件
    一旦Form2單擊確定按鈕,触发该事件,这样就可以通过该事件来传递aryold,arynew到Form1
      

  3.   

    思路大概是这样,我用一个string代替你的List<string>
    Form1:public partial class Form1 : Form
    {
        private string _a;
        public Form1()
        {
           InitializeComponent();
           Form2 f2 = new Form2(this);
           f2.TopLevel = false;
           panel1.Controls.Add(f2);
           f2.Show();
        }    public string A
        {
          set{_a = value;}
          get{return _a;}
        }    public void Methods()
        {
          if (A == "1")
          {
             MessageBox.Show("1");
          }
          if (A == "2")
          {
             MessageBox.Show("2");
          }
        } 
    }
    Form2:
    public partial class Form2 : Form
    {
       Form1 f1;
       public Form2(Form1 f1)
       {
          InitializeComponent();
          this.f1 = f1;
       }   private void button1_Click(object sender, EventArgs e)
       {
          f1.A = textBox1.Text;
          f1.Methods();
       }
    }
      

  4.   

    窗体能加到Panel 里!厉害