Oma*_*ani 2 c# label timer winforms
我正在 Visual Studio 2017 中创建一个 WinForms 应用程序。
我有一个登录表单,如果用户输入错误的用户名或密码,则具有visible = false属性的标签将变得可见5秒,然后返回不可见。
我尝试过做这样的事情:
label3.Visible = true;
Thread.Sleep(3000);
label3.Visible = false;
Run Code Online (Sandbox Code Playgroud)
显然,这是行不通的,我在网上找不到任何有类似问题的人,所以我希望你能帮助我解决这个问题。
我见过其他使用此解决方案的:
var t = new Timer();
t.Interval = 3000; // it will Tick in 3 seconds
t.Tick += (s, e) =>
{
label3.Hide();
t.Stop();
};
t.Start();
Run Code Online (Sandbox Code Playgroud)
但我收到一条错误消息“无法在此范围内声明名为“e”的本地或参数,因为该名称在封闭的本地范围中使用来定义本地参数”。
如果您使用的是 .NET Framework 4.5 或更高版本,您也可以使用以下代码完成此操作:
label3.Visible = true;
System.Threading.Tasks.Task.Delay(3000).ContinueWith(_ =>
{
Invoke(new MethodInvoker(()=> { label3.Visible = false; }));
});
Run Code Online (Sandbox Code Playgroud)