从Form1到From2的变量访问

本文关键字:变量 访问 From2 Form1 | 更新日期: 2023-09-27 18:25:26

我是C#的新手,我需要能够访问从Form1到Form2的声明变量。可变示例:

decimal Total = 0.00M;当用户输入项目时,总数将增加。

一旦用户输入完项目,我需要Form2从Form1访问变量Total,并且一旦用户选择了付款方法,我就可以在Form2中为Total清零。

我该怎么做?

从Form1到From2的变量访问

如果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模式,允许从所有表单访问状态。