如何从另一个文件更改字符串

时间:2014-03-16 00:52:10

标签: c# winforms integer

所以我有两种形式,一种叫做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();
    }

2 个答案:

答案 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