C# 关于C语言中的工具条状态#

C# 关于C语言中的工具条状态#,c#,C#,我试图在2秒内将工具条状态中的文本从一条消息更改为另一条消息。为什么我不能像下面这样做 toolStripStatusLabel1.Text = "Cool"; Thread.Sleep(2000); toolStripStatusLabel1.Text = "Status: IP Address update complete"; 我试过了,但它只显示第二条消息。为什么它在2秒内不显示第一条消息 toolStripStatusLabel1.Text = "Cool"; Thread.Sle

我试图在2秒内将工具条状态中的文本从一条消息更改为另一条消息。为什么我不能像下面这样做

toolStripStatusLabel1.Text = "Cool";
Thread.Sleep(2000);
toolStripStatusLabel1.Text = "Status: IP Address update complete"; 
我试过了,但它只显示第二条消息。为什么它在2秒内不显示第一条消息

toolStripStatusLabel1.Text = "Cool";
Thread.Sleep(2000);
toolStripStatusLabel1.Text = "Status: IP Address update complete"; 
Application.DoEvents()

而不仅仅是睡觉。应用程序需要处理触发并等待的刷新/绘制/绘制事件。

这是网页吗?也许,只是也许,在没有看到所有代码的情况下,您设置了第一个工具提示,然后休眠2秒钟,然后设置了新的toolstrip。。然后完成加载页面,当然,您只会看到第二个文本。你在代码中丢失了2秒钟(第一行,第二行,等两秒钟,第三行就到了)。实际上,我想显示我的串口传输状态。步骤如下:1)单击按钮。2) 将状态标签显示为“传输”。3) 进行串行端口传输,大约2秒。4) 将状态标签显示为“传输完成”。我该怎么做呢?调用application.DoEvents将获得您想要的结果,但我不建议将其作为解决方案。有更好的方法来更新UI。您可能希望查看Task或Backgroundworker,并将串行端口从UI线程中移出。
toolStripStatusLabel1.Text = "Cool";
Thread.Sleep(2000);
toolStripStatusLabel1.Text = "Status: IP Address update complete";