【发布时间】:2014-11-11 08:13:03
【问题描述】:
我一直在 vc# express 2013 中开发 Windows 窗体应用程序。我有一个状态条控件,其中有一个标签和一个进度条。我想在标签中显示进度条的进度,但它没有随着进度条值更新。它仅在进度条完成时更新,即当值为 100 并且作业完成时。奇怪的是,进度条已更新,但标签没有……有什么想法可能发生在这里吗?顺便说一句,我在自己的代码中引发了一个进度事件,该事件被处理并相应地更新了进度...... 谢谢
我在 MGFDataHandler 类中引发了 ProgressTick 事件
if ((hundredthValue*progressMultiplier == lineCounter) || (lineCounter==totalLines))
{
//Raise the progress bar event!
EventHandler handler = ProgressTick;
if (handler != null)
{
handler(this, e);
}
progressMultiplier++;
}
然后我在windowsform中处理如下:
void msDataHandler_ProgressTick(object sender, EventArgs e)
{
var progress = (int)((MGFDataHandler)sender).progressMultiplier;
if (progress < 100)
{
this.progressStatusString.Text = "Progress: " + progress + "%";
this.progressBar.Visible = true;
this.progressBar.Value = progress;
}
else
{
this.progressStatusString.Text = "Done";
this.filterMSDataToolStripMenuItem.Enabled = true;
}
}
启动整个事情的函数在windowsform_activated事件中,MGFDataHandler对象是windowsform的一个属性。
private void GlycoMSPipelineMainFrame_Activated(object sender, EventArgs e)
{
switch (this.whoActivatedMe)
{
case WhoActivatedMe.MSFilterWizard:
{
this.whoActivatedMe = WhoActivatedMe.Me;
foreach (String currentmgffilename in this.currentMGFFileNames)
{
mgfDataHandler.Filter_MS_Data(currentmgffilename);
}
this.populateTreeViews();
break;
}
default:
{
break;
}
}
}
引发事件的是 Filter_MS_Data。
【问题讨论】:
-
向我们展示一些代码,以及更多信息
-
我给你留下了答案。它有帮助吗?您需要更多信息吗?
标签: c# winforms progress-bar