我想知道如何从form1到form2传递,比如说一个整数。
我尝试通过一个打开form2的按钮来做到这一点,但点击事件按钮时无法识别整数...我该怎么办?
在form1中我有整数x,我希望当我点击button1时,form2会在标签中打开x值。
如果有一种方法可以在没有按钮的情况下传递信息(那么我可以使用按钮来打开form2),这也很棒。
答案 0 :(得分:2)
你可以使用第二种形式构造函数。
private int input;
public Form2(int input)
{
this.input = input;
InitializeComponent();
}
创建对象时,可以传递var(int in here):
int myvar=911;
Form2 tmp = new Form2(myvar);
tmp.Show();
现在您可以在form2中使用该私有变量:
lbl.Text=input.toString();
:
private void button1_Click(object sender, EventArgs e)
{
Form2 tmp = new Form2(911);
tmp.Show();
}
并在Form2中:
public Form2(int input)
{
InitializeComponent();
label1.Text = input.ToString();
}
发送你的代码来解决这个问题。我无法找到没有你的代码就无法识别你的代码的原因!
答案 1 :(得分:1)
在您的代码中,两个表单都可以访问变量。例如,创建一个新的命名空间并在其中添加public static class FormData
public static int Value
。
namespace GlobalVariables
{
public static class FormData
{
public static int Value { get; set; }
}
}
然后,从两个表单中,您都可以使用GlobalVariables.FormData.Value
访问所述变量(并对其进行修改)。在这里,我把它变成了一个属性,但你可以随心所欲地做任何事情。
答案 2 :(得分:1)
除了通过Form2构造函数传递值之外,您还可以创建一个设置标签值的属性,例如
窗体2
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
public int XValue{
set{
label1.Text = value.ToString();
}
}
}
Form1中
public partial class Form1 : Form
{
private int x = 10;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();
form2.XValue = x;
form2.Show();
}
}