连续在Windows窗体中显示和隐藏标签

时间:2017-07-28 15:27:36

标签: winforms

我想连续显示和隐藏标签(在for循环中使用sleep)。这就是我在做的事情:

for (i = 0; i < 25; i++)
{
      label1.Visible = true;
      Thread.Sleep(1000);
      label1.Visible = false;
      Thread.Sleep(2000);
}

但是,上面的代码没有按预期工作。我根本看不到标签。不知道如何实现这个

1 个答案:

答案 0 :(得分:1)

使用Thread.Sleep冻结你界面的Windows,你必须运行一个单独的胎面或使用一个为你做这个的计时器 例如:

    void blinkLabel()
    {
        int blink_times = 25;

        System.Windows.Forms.Timer timer1 = new System.Windows.Forms.Timer();            

        timer1.Interval = 1000;//every one second

        timer1.Tick += new System.EventHandler((s, e) =>
        {
            if (blink_times >= 0)
            {
                label1.Visible = !label1.Visible;
                blink_times--;
            }
            else
            {
                timer1.Stop();
            }
        }
        );


        timer1.Start();
    }