从另一种形式的变量中读取变量

时间:2015-06-16 08:49:23

标签: c# variables

我有两种形式,让我们说form1和form2。在form1中,我有变量v1。现在在form2中,我希望显示v1的值,但问题是,v1会不断变化。当我在form1中初始化form2时,我已经将v1传递给了form2,如下所示:

public partial class form1 : Form
{
   public int v1;

   public form1()
   {
       form2 f2 = new form2(v1);
   }
}

然后在form2中

public partial class form2 : Form
{
   public int v2;

   public form2(int v1)
   {
       v2 = v1;
   }
}

这应该可以正常工作,但如果我说20个变量,它会将大量参数传递给构造函数。当然,我可以先将所有变量放在某种列表的数组中,但只是想知道是否有其他更好的方法来完成这项任务,而不使用静态(因为我听说过使用静态是非常糟糕)。

2 个答案:

答案 0 :(得分:1)

您始终可以将form1作为参数传递给form2

form2 f2 = new form2(this);

然后

public partial class form2 : Form
{
   private form1 _form1;

   public form2(form1 form1)
   {
       _form1 = form1;
   }

   private void SomethingElse(){
     var res = 10 - _form1.v1;
   }

}

答案 1 :(得分:0)

您可以使用包含所有必要参数的类:

public class SharedData
{
   public SomeValue1 { get; set; }
   public SomeValue2 { get; set; }
   public SomeValue3 { get; set; }
}

public partial class Form1 : Form
{
    private SharedData _data;
    public Form1()
    {
        _data = new SharedData();
        var form2 = new Form2(_data);
    }
}

public partial class Form2 : Form
{
    private SharedData _data;
    public Form2(SharedDatadata data)
    {
        _data = data;
    }
}