基本上,当用户在textfield
上的Form2
输入数据时,我希望将数据存储到变量中,然后当用户选择按钮输入时,Form2
将隐藏并{ {1}}会出现。然后,我希望Form1
在新Form1
中显示从textfield
Form2
输入的数据。
这是我的尝试,但它不起作用
表格2 ......
textfield
然后在Form1上调用它,我把...
public string Player1 {get; set;}
private void pvpPlay_Click(object sender, EventArgs e)
{
Player1 = txtPlayer1.Text;
Form1 op = new Form1();
op.Show();
this.Hide();
}
但它不起作用。希望有人知道答案。
答案 0 :(得分:0)
我更喜欢使用像这样的简单回调函数:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public String SomeProperty { get; set; }
private void OpenFormButton_Click(object sender, EventArgs e)
{
var secondForm = new Form2()
{
GetSomeProperty = () => { return SomeProperty ;};
};
this.Hide(); //The best way to hide!
secondForm.Show();
}
private void Form1_Load(object sender, EventArgs e)
{
SomeProperty = "HELLO WORLD";
}
}
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
public Func<string> GetSomeProperty
{
get;
set;
}
private void Form2_Load(object sender, EventArgs e)
{
MessageBox.Show(GetSomeProperty.Invoke());
}
}
每次调用GetSomeProperty.Invoke();
时,Func都会调用get访问器并从第一个表单返回
答案 1 :(得分:0)
您可以做的是重载 Form1
构造函数。
public Form1(string s)
{
txtTest.Text=s;
}
从Form2
Form1 op = new Form1(Player1);