所以我需要能够将属性(名称)传递给另一个窗体。
在第一种形式中,提示用户键入他们的名字,而在第二种形式中,显示他们的名字。
我的问题是,虽然在新表单运行时保存了第一个表单中键入的值(我有一个消息框显示),但该属性的值将重置为构造函数类中的占位符名称。这是代码(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;
}
答案 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();
}