// Form1 代码如下:private Button1_Click(.......)
{
  Form2 frm = new Form2();
  frm.ShowDialog()
  if(frm.DialogResult == DialogResult.OK)
  {
     MyProc(frm);  // 就是在这里,我把窗体作为参数传递到另一个方法
  }
  frm.Close();
}private void MyProc(Form frm)
{
  string myName = frm.MyName; // 为什么取不到MyName 的值,MyName 属性我已经设置成公有的了。
}// Form2 如下:public string MyName = "yuna123";

解决方案 »

  1.   

    如果你只想取Myname,为什么不把Myname当作参数传过来呢?
      

  2.   

    因为不只MyName 有很多值啊
      

  3.   

    private void MyProc(Form2 frm)//还有就是这里,你应该用Form2 ,不是Form。
    {
      string myName = frm.MyName; 
    }
    可以当参数,没问题。
      

  4.   

    那我可不可以和你交个朋友啊?我喜欢于娜这个名字。可以的话你告诉我你的QQ、MSN都行。到时候就知道我有没有你大了!^_^
      

  5.   

    Form2应该被你close掉了,所以另外得线程就取不到它了。
      

  6.   

    这样也可以:
    private void MyProc(Form frm)//还有就是这里,你应该用Form2 ,不是Form。
    {
        Form2 f=frm as Form2
        if (f!=null)
        {
            string myName = f.MyName; 
        }
    }
      

  7.   

    YuNa123 (于娜小姐 [谁说女子编程不如男,谁说女程序员不美丽])    有本事把相片贴出来看看就知道了