form1中有button1,当点击button1时,调出form2,并把一个字符串aa传到form2中。
我这样写:form1中:
 private void button1_Click(object sender, EventArgs e)
        {
            Form2 xg= new Form2();
            xg.mstr="aa";
            xg.Show();        }
form2中:
public partial class Form2 : Form
    {
        private string m_str;
        public string mstr
        {
            get { return m_str; }
            set { this.m_str = value; }
        }        public Form2()
        {
            InitializeComponent();
            textbox1.Text=mstr;
         } 
怎么得不到值啊?是不是我把位置放错了还是少了什么?
哪位大侠帮忙给指点下,小女子不胜感激。
在线等。
        

解决方案 »

  1.   

    可有人在啊?大哥大姐们帮帮忙啊.我是菜鸟一个了,以前写web,没写过winform.
      

  2.   

    textbox1.Text=mstr; 
    放到窗体Load事件中
      

  3.   

    原因是
    Form2 xg= new Form2(); //在这里他执行了
    public Form2() //这个方法而mstr未赋值
            { 
                InitializeComponent(); 
                textbox1.Text=mstr; 
            }             xg.mstr="aa"; 
                xg.Show(); 
      

  4.   

    我也有放着试过,也不行,好像load事件不执行啊
      

  5.   

    传值很简单我们这样写一个吧
    private void button1_Click(object sender, EventArgs e)
            {
                string mstr="aa";
                Form2 xg= new Form2(mstr);
                xg.ShowDialog();        }
    form2中:
    public partial class Form2 : Form
        {
            public Form2()
            {
                InitializeComponent();
            } 
            public Form2(string mstr)
            {
                InitializeComponent();
                textbox1.Text=mstr;
            }
      

  6.   

    public partial class Form2 : Form 
        { 
            private string m_str; 
            public string mstr 
            { 
                get { return m_str; } 
                set { this.m_str = value; } 
            }         private void Form2 _Load(object sender, EventArgs e)        
            { 
                InitializeComponent(); 
                textbox1.Text=m_str; 
            } 
    这样试试--------------
      

  7.   

    public partial class Form2 : Form 
        { 
            private string m_str; 
            public string mstr 
            { 
                get { return m_str; } 
                set { this.m_str = value; } 
            }         private void Form2 _Load(object sender, EventArgs e)        
            { 
                //InitializeComponent(); 
                textbox1.Text=m_str; 
            } 
      

  8.   

    放到load中不行,不知道为什么,我假如只在load中写   MessageBox.Show("aaaaaaaaaaaaaaaaaaaaaa");
    运行都看不到结果,为什么我的load事件不执行哪?
      

  9.   

    就是这句 this.Load += new System.EventHandler(this.Form4_Load);
      

  10.   

    public Form2() 
            { 
                InitializeComponent(); 
                textbox1.Text=mstr; 
    this.Load += new System.EventHandler(this.Form2_Load);
            } 
      

  11.   

    this.Load += new System.EventHandler(this.Form4_Load);
    这个放在哪里?还有form4我要改成form2吗?
      

  12.   

    谢谢楼上的各位,加上this.Load += new System.EventHandler(this.Form2_Load); 
    可以得到值了。
    非常感谢!
      

  13.   

    可以定义一个带有参数的构造函数
    private string _text = string.empty;
    public Form2(string text)
    {
        this._text = text;
    }