从Form1到From2的变量访问
本文关键字:变量 访问 From2 Form1 | 更新日期: 2023-09-27 18:25:26
我是C#的新手,我需要能够访问从Form1到Form2的声明变量。可变示例:
decimal Total = 0.00M;
当用户输入项目时,总数将增加。
一旦用户输入完项目,我需要Form2从Form1访问变量Total
,并且一旦用户选择了付款方法,我就可以在Form2中为Total
清零。
我该怎么做?
如果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;
}
}
在另一个类或其中一个类中创建一个静态变量。静态变量可以被所有东西访问。您需要使变量为泛型/静态。我就是这么做的。
您可以将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,它们会给您带来一些问题。
对于这种情况,最好的方法是创建第三个类,该类表示以这两种形式处理的操作的上下文。你可以在这个类中保留所有需要共享的状态,并将其作为参数从一个表单传递到另一个表单。或者应用Singleton模式,允许从所有表单访问状态。