比如我在把form2的值传给Form1点击button以后会显示好几个FORM页

解决方案 »

  1.   

    不好意思了,语文水平低,我在说一下我的问题,
    在Form1中有一个Textbox和button控件,点击button后进入Form2 ,Form2中也有button控件,在Form2中计算出结果,点击form2的button将结果值传给Form1的Textbox,我用构造函数可以将值传过去,可是却传到的不是调用的页面,又重新打开一次Form1的页面.
      

  2.   

    窗体间传值的方法太多了,GOOGLE一下吧
      

  3.   

    窗体间传值我已经实现了 ,就是每点击一次Form2的button时就会显示一次Form1的界面。传值传不到想要的界面里。
      

  4.   

    你可以自定义一个实体类,里面只有你要的变量,而且是静态的,然后当你点击form2的时候把值赋到该变量,然后你就在什么地方都可以用了...
    不知如何...
      

  5.   

    Form2 里的主要代码:
    private void button1_Click(object sender, System.EventArgs e)
    {   double R;
    double a= Convert.ToDouble(this.textBox1.Text);
     double b=Convert.ToDouble(this.textBox2.Text);
    R=a+b;
    Form1 ff = new Form1(R);
    ff.Show();
    }
    Form1的代码:
    public Form1(double s)
    {
                InitializeComponent();
    this.textBox1.Text=Convert.ToString(s);
    }
    private void button1_Click(object sender, System.EventArgs e)
    {
    Form2 ff = new Form2();
    ff.Show();
    }
      

  6.   

    你可以自定义一个实体类,里面只有你要的变量,而且是静态的,然后当你点击form2的时候把值赋到该变量,然后你就在什么地方都可以用了...
    不知如何...
      

  7.   

    Form2 里的主要代码:
    private void button1_Click(object sender, System.EventArgs e)
    {   double R;
    double a= Convert.ToDouble(this.textBox1.Text);
     double b=Convert.ToDouble(this.textBox2.Text);
    R=a+b;
    Form1 ff = new Form1(R);
    ff.Show();
    }
    Form1的代码:
    public Form1(double s)
    {
                InitializeComponent();
    this.textBox1.Text=Convert.ToString(s);
    }
    private void button1_Click(object sender, System.EventArgs e)
    {
    Form2 ff = new Form2();
    ff.Show();
    }
    =====================你应该找些 基础书看看 再搞设计。
      

  8.   

    bandylau()
    你可不可以给我一点代码啊?谢谢!
      

  9.   

    哦,你首先去建立一个类,这个类的类名为MyClass,然后在类里面定义一个字段,比如说是
    public static string s = "";当你点击Form2的时候,就 MyClass.s = this.txtNN.Text.Trim();然后你就可以在你要用该值的时候去调用该变量,如:this.txtMM.Text = MyClass.s;
      

  10.   

    bandylau()
    先谢谢你,可是我试着这样做还是不行啊
      

  11.   

    在窗体1里面有一个一个Button
    private void button1_Click(object sender, System.EventArgs e)
    {
      Class1.s = "我是谁?";
      Form2 obj = new Form2();
      obj.ShowDialog();
    }在窗体2里面有一个TextBox和一个Button
    private void button1_Click(object sender, System.EventArgs e)
    {
    this.textBox1.Text = Class1.s;
    }还有一个类
    using System;namespace WindowsApplication1
    {
    /// <summary>
    /// Class1 的摘要说明。
    /// </summary>
    public class Class1
    {
    public Class1()
    {

    }
    public static string s = null;
    }
    }我运行的是可以的....
      

  12.   

    不是我想要的结果啊,我是想点击Form2的按钮以后,就将结果直接传到form1的Textbox,只出现一次Form1的界面。
      

  13.   

    用委托的方式传递FROM2中  public delegate void changelabel(string s);
      public event changelabel change;  private void button1_Click(object sender, System.EventArgs e)
      {
       if(change != null)
       {
        change(this.textBox1.Text);
       }
      
      }FROM 1中  private void button2_Click(object sender, System.EventArgs e)
      {
       frmlabel frm = new frmlabel();
       frm.change += new frmlabel.changelabel(myevent);
       frm.Show();  }
      private void myevent(string s)
      {
       this.label2.Text = s;
      }
      

  14.   

    在form2实例化的时候把form1的引用放到构造函数里就可以了吧,然后在form2中调用form1.Text1.Text="";
    不过form1的Text1必须为public的
      

  15.   

    (1)你可以自定义一个实体类,里面只有你要的变量,而且是静态的,然后当你点击form2的时候把值赋到该变量
    (2)用委托,事件都可以做到
      

  16.   

    估计楼主需要这样的代码才能满足要求,借用songcan(当爱已成往事) ( ) 信誉:100 的代码。用委托的方式传递Form2  public delegate void changelabel(double s);
      public event changelabel change;  private void button1_Click(object sender, System.EventArgs e)
      {
              double R;
     double a= Convert.ToDouble(this.textBox1.Text);
     double b=Convert.ToDouble(this.textBox2.Text);
     R=a+b;
              if(change != null)
              {
                change(R);
              }  
      }Form1public Form1()
    {
         InitializeComponent();
    }
    private void button2_Click(object sender, System.EventArgs e)
    {
       Form2 ff = new Form2();
       ff.change += new Form2.changelabel(myevent);
       ff.Show();
    }
    private void myevent(double s)
    {
         this.textBox1.Text=Convert.ToString(s);
    }
      

  17.   

    谢谢liufuyahong() ( ) 问题解决了。
    现在开始散分了。