现在我有2个表格。我想创建一个将在两个表单之间传递的变量(如一个int)。例如,我在第一个表单上使用代码public static int myInt = 50;
创建一个变量
但是如何将该变量转换为2?
答案 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显示,因为“是相同的”变量(内存中的值相同)。