如何将存储在Properties中的变量传递到另一个窗体?

时间:2014-02-07 15:09:22

标签: c# forms

所以我需要能够将属性(名称)传递给另一个窗体。

在第一种形式中,提示用户键入他们的名字,而在第二种形式中,显示他们的名字。

我的问题是,虽然在新表单运行时保存了第一个表单中键入的值(我有一个消息框显示),但该属性的值将重置为构造函数类中的占位符名称。这是代码(Form1是第二种形式)

他们两个都在开始时初始化了对contructor类的引用。

else if (select > 0 || txtName.Text != "")
{
    p.Name = txtName.Text; // Save Name as property                 
    MessageBox.Show("" + p.Name);
    this.Hide();
    Form1 form = new Form1();

    form.ShowDialog();

}

Form1:

private void Form1_Load(object sender, EventArgs e)
{
    setName();
    MessageBox.Show("" + p.Name);
    timer1.Start();
    label3.Text = "Player: " + p.Name;    
}

1 个答案:

答案 0 :(得分:0)

Form1中创建一个属性以接受名称:

public class Form1 : Form
{
    //other stuff

    public string Name {get;set;}
}

然后在创建表单时设置该属性:

else if (select > 0 || txtName.Text != "")
{
    this.Hide();
    Form1 form = new Form1();
    form.Name = txtName.Text;
    form.ShowDialog();
}