将标签文本显示为警告消息并在几秒钟后隐藏它?

use*_*382 12 .net c# winforms

我有按钮,用于验证用户是否是管理员.如果用户当前登录不是管理员,则标签将显示为警告消息,然后在几秒钟后隐藏.我尝试使用lblWarning.Hide();lblWarning.Dispose();在警告消息之后,但问题是,它甚至在显示警告消息之前隐藏了消息.这是我的代码.

private void button6_Click(object sender, EventArgs e)
{
    if (txtLog.Text=="administrator")
    {
        Dialog();
    }

    else
    {
       lblWarning.Text = "This action is for administrator only.";
       lblWarning.Hide();
    }

}
Run Code Online (Sandbox Code Playgroud)

Mik*_*oud 26

你想要用它来"隐藏"它Timer.你可能会实现这样的事情:

var t = new Timer();
t.Interval = 3000; // it will Tick in 3 seconds
t.Tick += (s, e) =>
{
    lblWarning.Hide();
    t.Stop();
};
t.Start();
Run Code Online (Sandbox Code Playgroud)

而不是这个:

lblWarning.Hide();
Run Code Online (Sandbox Code Playgroud)

因此,如果您希望它可见超过3秒,那么只需要花费您想要的时间并将其乘以1000,因为Interval它是以毫秒为单位.

  • @Brendon @Mike,暂时我不记得为什么我写的那个Timer在`System.Timers.Timer`而不是`System.Windows.Forms.Timer`,可能是错误的. (3认同)
  • @Moshisho,这是一个`System.Windows.Forms.Timer`,因为这个解决方案专门针对Windows窗体. (2认同)