我在c#中创建了一个包含2个表单和一个附加类的简单程序。 我希望在表格1中按Enter键时更新表格2中显示游戏年份的标签。以下程序正常工作,当我在表格1中按Enter键时,游戏年份增加1,因此在表格2中的标签上更新:
表格1:
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)Keys.Enter)
{
Form2 form2 = (Form2)this.MdiParent.MdiChildren[2];
form2.updateLabelValue();
}
}
表格2:
//Update value in form
public void updateLabelValue()
{
game.increaseYear();
gameYearLabel.Text = Math.Abs(Game.gameYear).ToString();
}
游戏类:
public class Game
{
public static int gameYear = -4000;
public void increaseYear()
{
gameYear += 1;
}
现在我正在尝试创建表单1(当按下Enter键时)首先调用GAME类,然后从那里更新表单2中的值(这样两个表单都不直接通信,而是通过GAME类): / p>
表格1:
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)Keys.Enter)
{
game.increaseYear();
}
}
表格2:
//Update value in form
public void updateLabelValue()
{
gameYearLabel.Text = Math.Abs(Game.gameYear).ToString();
}
游戏类:
public class Game
{
public static int gameYear = -4000;
public void increaseYear()
{
gameYear += 1;
Form2 form2 = new Form2();
form2.updateLabelValue();
}
但在这种情况下,当我按Enter键时,表单2中的标签不会更新,即使通过调试我可以看到该值确实已更改,但它不会在标签本身上更新。我也试过调用Refresh()但它没有用。