我是C#的新手,我需要能够访问从Form1到Form2的声明变量。变量示例:
decimal Total = 0.00M;
当用户输入项目时,总数将增加。
一旦用户完成输入项目,我需要Form2从Form1访问变量Total
,一旦用户选择要付费的方法,我就可以在Form2中归零Total
。
我该怎么做?
答案 0 :(得分:4)
如果Form1引用了Form2,您只需将其作为变量访问即可。像这样:
public class Form1
{
public decimal Total {get; set;}
}
public class Form2
{
public Form2()
{
var form1 = new Form1();
form1.Show();
..later, after use has done some work and you need the variable
var total = form1.Total;
}
}
答案 1 :(得分:1)
在另一个类或其中一个类中创建一个静态变量。一切都可以访问静态变量。您需要使变量通用/静态。我就是这样做的。
答案 2 :(得分:1)
您可以将Form1传递给Form2(如果您需要更多变量):
public class Form2
{
public Form1 form1 { get; set; };
}
我想你应该从Form1调用Form2,所以你可以这样做:
public class Form1
{
private void callForm2()
{
Form2 form2 = new Form2();
form2.form1 = this;
form2.Show();
}
}
我不建议使用静态变量,因为如果您的应用程序中打开了多个Form1,它们会给您一些问题。
答案 3 :(得分:0)
此类案例的最佳方法是创建第3类,表示以这两种形式处理的操作的上下文。您可以保留在此类中共享所需的所有状态,并将其作为参数从表单传递到表单。或者应用单例模式,允许从您拥有的所有表单访问状态。