[size=24px]现在我要做一个form1有一个button1,通过它跳转到form2 ,form2中的textbox1录入文本后点击button2在form1的lable1显示.(但不要使用公共类定义的临时变量来传递哟)。请问大家有好一点的意见吗?[/size]

解决方案 »

  1.   

    让form1去注册form2的事件或者让form2去Invoke form1的方法
      

  2.   

    可在Form1类中定义一个方法class Form1 {   ...    public void string SetLableText(string str)
        {
          lable1.Text = str;
        }}
    form2构造时传入form1对象private Form1 form1;
    public Form2(Form1 form)
    {
        this.form1 = form;
        InitializeComponent();
        //button2单击事件
        private void button2_Click(object sender, EventArgs e)
        {
            this.form1.SetLableText(textbox1.Text);
        }
    }
      

  3.   

    form2写错了哦,应该是
    -----------------------------------------
    //form2构造时传入form1对象
    private Form1 form1;
    public Form2(Form1 form)
    {
      this.form1 = form;
      InitializeComponent();
    }  //button2单击事件
      private void button2_Click(object sender, EventArgs e)
      {
          this.form1.SetLableText(textbox1.Text);
      }
      

  4.   

    在form2中添加一个公共属性:
    public string InputValue{set;get;}
    button2点击后将文本框的值赋予给这个属性在form1中可以获取你声明的那个form2对象的这个InputValue值。
      

  5.   

    这个问题问的很多!第一构造函数,第二委托事件。
    http://topic.csdn.net/u/20110311/14/7526e72b-f68f-4d8d-b501-b9a77931bc3f.html
      

  6.   

    http://vpp516.blog.163.com/blog/static/571844052011322114114586/
      

  7.   

    直接在form2中定义一个public的变量,就可以在from1中使用。
      

  8.   

    在Form2中定义属性:public string TxtName;把录入的值赋值给TxtName
     TxtName= this.txtCTMess.Text.ToString();
                this.DialogResult = DialogResult.OK;
                this.Close();
    在Form1中这样显示If(Form2.ShowDialog()==DialogResult.OK)
    {
    this.lblText.Text=Form2.TxtName;
    }