有两个Form窗体Form1,Form2.再Form1窗体中我们有个TextBox1,Button1。当我们点击Button按钮,可以打来Form2窗体,同时再 Form2窗体中的Lable1中显示出Form1窗体中TextBox1中数据。
大致代码如下:
先添加以个类
 public class Class1
    {
        private int Sum;
        public int sum
        {
            get { return Sum; }
            set { Sum =value; }
        }
    }
FORM1中 BUTTON1的 Click事件 代码如下:private void button1_Click(object sender, EventArgs e)
        {
            Class1 c = new Class1();
            c.sum = Int32.Parse(textBox1.Text);
            Form2 f2 = new Form2();
            f2.Show();
        }再FORM2窗体中代码:
private void Form2_Load(object sender, EventArgs e)
        {
            Class1 d = new Class1();
            label1.Text = Convert.ToString(d.sum);
        }
结果是当我在Form1窗体中的TextBox1中输入一个值,在Form2的窗体中Lable都显示0。
求高手帮忙。。

解决方案 »

  1.   

    要实现你这样的效果 把Class1中的字段定义为STATIC的就行了
      

  2.   

    FORM1中 BUTTON1的 Click事件 代码如下: private void button1_Click(object sender, EventArgs e) 
            { 
                Form2 f2 = new Form2(); 
                f2.d.sum = Int32.Parse(textBox1.Text); 
                f2.Show(); 
            } 再FORM2窗体中代码: 
    public Class1 d = new Class1(); private void Form2_Load(object sender, EventArgs e) 
            { 
                label1.Text = Convert.ToString(d.sum); 
            } 
      

  3.   

    你这样肯定是显示0,因为Class1在两个窗体中分别声明,是属于两个实例了,按你的想法,
    textBox1.Text的值是应该传进Form2的。2楼的可以。
      

  4.   

    具体实现应该有多种,这里不多说,因为估计说了也没用。建议楼主还是去看看基础吧。
    简单说下楼主代码,
                Class1 c = new Class1(); 
              c.sum = Int32.Parse(textBox1.Text); 
    这里面是生成的C对象,并给C对象属性赋值。
                Class1 d = new Class1(); 
                label1.Text = Convert.ToString(d.sum); 
    这里是D对象,取的是D对象内容,和上面Form1中C对象唯一相同的就是同是Class1的对象,而在内存中是两个完全不同地址的东西,所以所以设置c.sum的值是不可能从d.sum中拿到的。多看基础~~