Я пытаюсь отправить данные из формы 2 в форму 1, которая будет обновляться при обновлении данных в текстовом поле. Я могу отправить данные, но я не могу их обновить. Я предполагаю, что я должен помещать его где-то, что обновляет значения команды1, но я предполагаю, что способ передачи данных по-прежнему доступен только для чтения и не может быть динамически изменен
//In Form 1
Form2 frm = new Form2();
Team1Lbl.Text = frm.team1;
//In form 2
public string team1
{
get { return Team1Name.Text + " - " + team1score.ToString(); }
}
Вы не отправляете данные, вы извлекаете данные из другой формы. Как должна 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;
}
}
Team1Lbl
. Вопрос в том, где (и когда) вы вызываете этот код? Может лиTeam1Lbl.Text
снова измениться другим фрагментом кода? Является ли код runnnig в бесконечном цикле и, таким образом, препятствует обновлению формы?