0

我真的不知道如何做到这一点,我试过弄乱一个计时器,但到目前为止无济于事。

那我想做什么?

我有一个空白的标签。当某个事件被触发时,我希望标签在 5 秒内显示“竞赛成功设置”,然后我希望它恢复为空白。

这确定可以吗??它可以?我玩过一个计时器,但我似乎很不合时宜。

任何帮助都将受到欢迎。我的微弱尝试如下。

private void UpdateLabel(object sender, EventArgs e)
        {
            var timer = new Timer()
                {
                    Interval = 5000,
                };
            timer.Tick += (s, evt) =>
                  lblCompetitionSetupSuccess.Text = "Competition successfully setup";

            timer.Start();

            lblCompetitionSetupSuccess.Text = string.Empty;
        }
4

2 回答 2

5

换一种方式试试:

    private void button1_Click(object sender, EventArgs e)
    {
        label1.Text = "I will vanish in 5 sec";

        var timer = new Timer();
        timer.Interval = 5000;
        timer.Tick += (o, args) => label1.Text = "";
        timer.Start();
    }

首先将标签设置为您希望它显示 5 秒的任何文本

        label1.Text = "I will vanish in 5 sec";

然后设置您的计时器,以便在计时器经过时它将删除文本

        var timer = new Timer();
        timer.Interval = 5000;
        timer.Tick += (o, args) => label1.Text = "";
        timer.Start();

如果您希望计时器在第一个计时器过去后停止:

        timer.Tick += (o, args) =>
            {
                label1.Text = "";
                timer.Enabled = false;
            };
于 2013-02-10T21:10:51.307 回答
1

确保您使用的是System.Windows.Forms.Timer在 UI 线程上调用 tick 事件的类。

于 2013-02-10T21:09:13.183 回答