我有一个WinForms程序,其button
中有statusStrip
,toolStripStatusLabel
和statusStrip
。如果我单击按钮,则运行:
private void button1_Click(object sender, EventArgs e)
{
toolStripStatusLabel1.Text = "Test";
System.Threading.Thread.Sleep(5000);
}
然后在线程完成休眠之后,toolStripStatusLabel
的文本才会更新。如何让它立即更新,然后睡眠线程?
答案 0 :(得分:1)
正如P. Kouvarakis所说,解决方案是:
toolStripStatusLabel1.Text = "Test";
statusStrip1.Update();
System.Threading.Thread.Sleep(5000);
答案 1 :(得分:0)
当状态条将 Spring 设置为 true 时,我的状态标签更改未在运行时显示。我将 Spring 设置为 false 并开始显示。
答案 2 :(得分:0)
请勿在此处添加文本更改代码,因为只有单击后才会刷新(如图所示 - statusStrip1_ItemClicked) 所以,任何 statusStrip1.Update(); this.Update();等帮不了你。
if
就像这张照片答案 3 :(得分:-1)
toolStripStatusLabel1.Text = "Test";
Application.DoEvents();
答案 4 :(得分:-1)
使用Application.DoEvents()
的最后一个解决方案是最好的。必须将Application.DoEvents()
附加到每个StatusStrip更改:
private void SetParseStatus(object sender, ParseStatusChangedEventArgs e)
{
toolStripProgressBar1.Value = e.Percent;
Application.DoEvents();
}