如何创建一个可以在多个表单上工作的变量?

时间:2014-06-21 01:44:36

标签: c# .net winforms variables

现在我有2个表格。我想创建一个将在两个表单之间传递的变量(如一个int)。例如,我在第一个表单上使用代码public static int myInt = 50;创建一个变量 但是如何将该变量转换为2?

3 个答案:

答案 0 :(得分:6)

不要创建任何类似的静态或公共变量...您应该以第二种形式创建一个可以从第一个表单访问的属性。虽然您可以直接以第二种形式传输您的值而不声明任何静态变量。

//Form2

private string value1 = string.Empty;
public string Value1
{
   get { return value1; }
   set { value1 = value; }
}


//Form1

private void YourMethod()
{
    Form2 frm = new Form2();
    frm.Value1 = "This is a sample value to pass in form 2";
    frm.Show();

}

现在,您可以使用Value属性在Form2中获取值。

//Form2
private void Form2_Load(object sender, EventArgs e)
{
     string myValue = Value1; //here you can use value like that
}

答案 1 :(得分:3)

在你的第一张表格中你应该(假设你正在使用设计师)

//Form1.cs
namespace myProject
{
    public partial class Form1 : Form
    {
        public static int myInt = 50;
        public Form1()
        {
            InitializeComponent();
        }
    }
}

要以第二种形式访问,假设它们位于同一名称空间中,请使用:

//Form2.cs
namespace myProject
{
    public partial class Form2 : Form
    {
        int thisInt;
        public Form2()
        {
            InitializeComponent();
            thisInt = Form1.myInt;
        }
    }

答案 2 :(得分:1)

您可以更改表单2的构造函数以接受该变量并从表单1传递它。

public Form2(int passed)

如果你想通过引用传递它。

public Form2(ref int passed)

使用变量引用打开表单2。

int passed = 1;
new Form2(ref passed);

如果通过引用传递,如果在表单2中更改了值,则更改也将以表单1显示,因为“是相同的”变量(内存中的值相同)。