我在form1的文本框中输入一些数据,当form1点击“下一步”按钮进入form2,当点击form2的“开始计算”按钮时程序将调用我自己建立的一个类来进行计算并返回计算结果,但我自己建立的这个类的计算所需数据要从form1当中传递过来。
  目前出现的问题是,我进行调试发现从form1向我自己的类传递数据不成功,不知该如何解决。
  另外我想问,我在form1中输入的数据我想一直保留(或者说处于可以为我自己的类传递参数的状态),而不是点击“下一步”出现form2后form1中的值就消失。
  
   我说的有点乱,请大家尽量理解!谢谢

解决方案 »

  1.   

    在Form2中定义全局变量,接受值。点击下一步时,传过来,然后Form2窗体加载时,用上就可以了。 
      

  2.   

    ①把form1中的值传入form2,然后再调用你的类来计算。
    或者把类定义成静态的。
    ②你别new form1就成了。
      

  3.   

    这样基本OK了
    如果你希望的你的传人值一直保存那你在就在Form1定义一个public static 成员变量用于保存你传入的值
      

  4.   

    在 Form1 的“下一步”里写:
                Form2 f2 = new Form2(textBox1.Text);
                if (f2.ShowDialog() == DialogResult.OK)
                {
                    textBox1.Text = f2.TextBoxValue;
                }在 Form2 里写:
            public Form2(string Param)
            {
                InitializeComponent();
                TextBoxValue = Param;
            }        private string _txtvalue;
            public string TextBoxValue
            {
                get { return _txtvalue; }
                set { _txtvalue = value; }
            }        private void button1_Click(object sender, EventArgs e)
            {
                int m = int.Parse(TextBoxValue);
                int n = 1;
                YourClass cls = new YourClass();
                int res = cls.YourMethod(m, n);
                TextBoxValue = res.ToString();
                DialogResult = DialogResult.OK;
            }你的类:
        public class YourClass
        {
            public int YourMethod(int m, int n)
            {
                return m + n;
            }
        }
      

  5.   

    可以使用多种办法实现。
    1 数据持久化:保存成文件或者数据库的记录,这个稍微复杂一点。
    2 使用方法,传送参数,这个最常见。
    3 使用Form2的属性传送。
      

  6.   

    用结构体,重定义Form2的New加入结构体参数,将结构体传入
      

  7.   

    定义 static成员变量最简单
      

  8.   

    form2 设置变量:public string formValue="";
    form1点击事件: form2 f=new from2();
                  f.formValue=textbox.text;//传递给form2的值
                    f.ShowDialog();//这样值就传递过去了