我有两种形式,让我们说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个变量,它会将大量参数传递给构造函数。当然,我可以先将所有变量放在某种列表的数组中,但只是想知道是否有其他更好的方法来完成这项任务,而不使用静态(因为我听说过使用静态是非常糟糕)。
答案 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;
}
}