我是c#的新手,我正在使用Windows窗体.
我有form13个buttons.我正在尝试设置3个按钮,以便在表单加载时/之后逐个显示.我使用了以下代码,但是当我运行程序时,它不起作用,同时出现3个按钮
private void MainForm_Load(object sender, EventArgs e)
{ //Hide all buttons
button1.Visible = false;
button2.Visible = false;
button3.Visible = false;
Thread.Sleep(500);
//show buttons one by one
button1.Visible = true;
Thread.Sleep(500);
button2.Visible = true;
Thread.Sleep(500);
button3.Visible = true;
}
Run Code Online (Sandbox Code Playgroud)
我不知道我做错了什么.任何人都可以帮助我如何在表单加载时/之后逐个显示3个按钮.我很高兴收到任何其他想法.谢谢
您正在使用Thread.Sleep阻止UI线程,并且未反映更新.
你可以做的最好的事情是创建一个异步函数并使用Task.Delay,这样线程仍然会响应,你会看到更新:
private async void MainForm_Load(object sender, EventArgs e)
{ //Hide all buttons
button1.Visible = false;
button2.Visible = false;
button3.Visible = false;
await Task.Delay(500);
//show buttons one by one
button1.Visible = true;
await Task.Delay(500);
button2.Visible = true;
await Task.Delay(500);
button3.Visible = true;
}
Run Code Online (Sandbox Code Playgroud)