所以我有两种形式,一种叫做Form1,另一种叫做Form2。在表单的一个文件中,我有一个名为'peopleNum'的整数。在Form1上有一个打开Form2的按钮。在Form2上有一个文本框和一个按钮。当用户按下Form2上的按钮时,我希望'peopleNum'等于该文本框。
这是我试图进一步解释这个
的代码//Form1 (global variable)
int peopleNum = 0;
//Form2
private void button1_Click(object sender, EventArgs e)
{
peopleNum = peopleNumIn.Text;
this.Close();
}
答案 0 :(得分:2)
你可以在int
Form1
中制作public
,所以它看起来像这样:
public int peopleNum = 0;
至于从Form2
设置它,我这样做的方法是在Form1
构造函数中添加Form2
参数。这样您就可以从调用表单访问公共整数。
您还需要Form1
课程内的Form2
私有实例。
如果这令人困惑,请让我用代码解释一切。
public partial class Form2 : Form
{
private Form1 parent;
public Form2(Form1 parent)
{
this.parent = parent;
}
private void button1_Click(object sender, EventArgs e)
{
parent.peopleNum = Convert.ToInt32(peopleNumIn.Text);
this.Close();
}
}
请注意,使用此方法,您需要在创建Form2
让我用代码告诉你:
void ShowForm2()
{
var form2 = new Form2(this);
form2.Show();
}
答案 1 :(得分:0)
Form2应该通过属性公开该TextBox的内容。请注意,该属性应为int
,因此您必须包含验证和转换。然后,Form1可以从Form2中检索该属性值。当Form2关闭时,如果它是模式对话或者事件被引发,你可能会这样做。
在此处查看我的博客文章,了解表单之间的通信信息。第三部分解释了"适当的"这样做的方法。
http://jmcilhinney.blogspot.com.au/2012/04/managing-data-among-multiple-forms-part.html