我正在尝试将表单2中的数据发送到表单1,当我更新文本框中的数据时将刷新。我可以发送数据,但我无法刷新。我假设我必须把它放在一个刷新team1值的地方,但我想我发送数据的方式是只读的,不能动态改变
//In Form 1
Form2 frm = new Form2();
Team1Lbl.Text = frm.team1;
//In form 2
public string team1
{
get { return Team1Name.Text + " - " + team1score.ToString(); }
}
答案 0 :(得分:1)
您没有发送数据,而是从另一个表单中检索数据。如果Form1
中的文字发生变化,Form2
应该如何知道?
您可以在Form2
中声明一个告诉Form1
该信息应该更新的事件
// In Form2
public event Action<string> TeamInfoChanged;
private void OnTeamInfoChanged()
{
var handler = TeamInfoChanged;
if (handler != null) {
handler(Team1Name.Text + " - " + team1score);
}
}
private void Team1Name_TextChanged(object sender, EventArgs e)
{
OnTeamInfoChanged();
}
在Form1
中,您可以附加到此活动:
public partial class Form1 : Form
{
private Form2 frm;
public Form1()
{
InitializeComponent();
frm = new Form2();
frm.TeamInfoChanged += new Action<string>(frm_TeamInfoChanged);
frm.Show();
}
void frm_TeamInfoChanged(string info)
{
Team1Lbl.Text = info;
}
}