【发布时间】:2014-06-21 01:44:36
【问题描述】:
现在我有 2 个表格。我想制作一个将在两种形式之间传递的变量(如 int)。例如,我用代码在第一个表单上创建了一个变量:public static int myInt = 50;
但是如何将该变量转换为表格 2?
【问题讨论】:
标签: c# .net winforms variables
现在我有 2 个表格。我想制作一个将在两种形式之间传递的变量(如 int)。例如,我用代码在第一个表单上创建了一个变量:public static int myInt = 50;
但是如何将该变量转换为表格 2?
【问题讨论】:
标签: c# .net winforms variables
不要创建任何这样的静态或公共变量...您应该以第二种形式创建一个可以从第一种形式访问的属性。尽管您可以直接以第二种形式传输您的值,而无需声明任何静态变量。
//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
}
【讨论】:
在你的第一个表单中你应该有(假设你正在使用设计器)
//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 传递它。
public Form2(int passed)
如果你想通过引用传递它。
public Form2(ref int passed)
通过引用打开带有变量的表格 2。
int passed = 1;
new Form2(ref passed);
如果通过引用传递,如果值在表单 2 中发生更改,该更改也将显示在表单 1 中,因为“是相同的”变量(内存中的值相同)。
【讨论】: