2014-10-30 143 views
-5

我一直在很难将我的变量值从表单1传递给我的表单2。事情是我想显示我的Form1,在Form2文本框中初始化的结果,一旦表单2加载(当我单击适当的按钮时出现一个ShowDialog())。将变量值从Form1传输到Form2

我的问题是结果不转移在我的Form2中,给我所有的变量一个0值。

这就是我把我的表格:

//Variables in my Form 1 

public partial class Form1 : Form 
{ 
    public static double VAR_1 = 1; 
    public static double VAR_2 = 2; 
    public static double VAR_3 = 3; 

    //Here I put all my textBoxes and other methods of the class 
} 

//Variables in my Form 2 

public partial class Form2 : Form 
{ 
    private void Form2_Load(object sender, EventArgs e) 
    { 
     this.textBox1.Text = Form1.VAR_1.ToString(); 
     this.textBox2.Text = Form1.VAR_2.ToString(); 
     this.textBox3.Text = Form1.VAR_3.ToString(); 
    } 
} 
+0

可能重复的[在Windows窗体c#之间传递值](http://stackoverflow.com/questions/17836398/passing-values-窗口之间的窗体-c-sharp) – dandan78 2014-10-30 14:22:13

+0

静态变量*抖动*。为此尝试制作课程。我建议卢旺达人解决你的问题:)它的definitly更好的方法,特别是如果你开始一个新的形式破坏你的形式。 – Jonny 2014-10-30 14:22:21

回答

6

你并不需要在所有使用“全局变量”。只要创建于Form2的方法(或属性),把你要使用的参数,并调用调用ShowDialog之前,例如:

var form2 = new Form2(); 
form2.SetData(text1, text2, text3); 
form2.ShowDialog(); 

你可以那些参数,甚至添加到构造,或使自己静方法来显示表单。有很多方法不涉及到老派程序编程回归:)

相关问题