我的应用程序是一个C#Windows窗体应用程序。当用户按下按钮“生成”我的应用程序创建一个新线程并运行新的工艺过程进行类似下面标签和进度条
Loop counter = 1 to N
progressbar = counter/N
Display msg on label1
Do some tasks
Loop
progressbar = 100%
Display msg on lable1
我已经委托我的processbar和标签的MSG这个伪代码,这些消息显示出来当它在循环内没有任何问题时,我甚至添加了一个事件来运行Application.DoEvents(),只要标签文本发生变化,但是我的最后一个信息从不显示,我试过在最后一个位置放置Application.DoEvents()味精标签,但没有解决方案。任何人都遇到过这个?
感谢大家的帮助!
编辑
这是我如何编码的我最后MSG(循环之后的一个)
this.BeginInvoke((MethodInvoker)delegate()
{
toolStripProgressBar1.Value = 100;
btnCancel.Enabled = false;
btnBrowse.Enabled = true;
btnSaveTo.Enabled = true;
btnGenerate.Enabled = false;
// Performance testing
lblGeneratingInfo.Text = "Generation Complete! Total Run time: " + DateTime.Now.Subtract(startDate).ToString();
});
FIXED: 我假设我试图显示文本太长...当我用“运行时间:”替换“生成完成:总运行时间”时,它显示o_o
嘿谢谢你的建议,我已经拿出Application.DoEvents()更改文本,一切仍然运行良好的新线程,但最后的信息仍然不会显示,所有其他信息shwos up perfect – ChickSentMeHighE 2010-06-28 12:25:13
@MikeAbyss - 你确定标签是可见的吗?目前还不清楚在那里出现了什么* – 2010-06-28 12:49:59
是的,标签总是可见的,我的代码也不会改变其可见性,或多或少最后的味精应该显示为“Generation Complete!Total run time [The time它完成了这个过程]“。最初我有一个只包含一个标签的状态栏,这个标签在更新文本和显示时没有问题,但是当我将进度条添加到状态栏时,这个问题就开始发生了。谢谢! – ChickSentMeHighE 2010-06-28 13:04:46