2014-02-07 60 views
0

所以我需要能够传递一个属性(名称)到另一个窗体中。如何将存储在属性中的变量传递给另一个窗体?

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

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

它们都在开始时初始化了对构造器类的引用。

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;  
} 
+0

HTTP ://stackoverflow.com/a/21249289/2998271 – har07

回答

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(); 
} 
相关问题