gpt4 book ai didi

c# - 在执行其他命令之前更改表单

转载 作者:行者123 更新时间:2023-11-30 20:35:26 25 4
gpt4 key购买 nike

所以我这里有一小段代码...

private void button1_Click(object sender, EventArgs e)
{
if (textBox2.Text==("Tim The Enchanter") && textBox1.Text==("cave100"))
{
label2.Visible = true;
label2.Text = ("Correct");
label2.ForeColor = System.Drawing.Color.Green;
System.Threading.Thread.Sleep(1000);
this.Hide();
Form2 form2 = new Form2();
form2.Visible = true;

}
}

这基本上是一个非常原始的登录屏幕!

除了在可以看到 label2 文本之前表单更改为 form2 之外,一切正常。我试图通过添加一个系统等待命令来解决这个问题,但是这在显示文本之前就已经完成了。我又一次回到了起点。

如有任何帮助,我们将不胜感激!

最佳答案

切勿在 WinForms 中使用 Thread.Sleep 进行等待。
它会阻塞 GUI 线程,并且您的标签不会被用户更新/看到。

当然也有很多变通方法可以做到,大家可以看看here .

最简单的方法是使用 C# 5.0 async/await 功能:

private async void button1_Click(object sender, EventArgs e)
{
if (textBox2.Text==("Tim The Enchanter") && textBox1.Text==("cave100"))
{
label2.Visible = true;
label2.Text = ("Correct");
label2.ForeColor = System.Drawing.Color.Green;
await Task.Delay(1000);
this.Hide();
Form2 form2 = new Form2();
form2.Visible = true;
}
}

关于c# - 在执行其他命令之前更改表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37914498/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com