标签不爽快

时间:2018-02-12 21:26:11

标签: c# forms label

我在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()但它没有用。

0 个答案:

没有答案