1
我有下面的代码,更新我的进度栏在视觉C锐利。它工作正常,酒吧移动的每个百分比。但我也有我从另一个网站上的帖子得到的代码,这是假设将进度条值放在进度条的中间作为百分比。它会显示分钟秒的进度栏值的百分比,但随后会消失。我对c sharp很陌生,并且在pBar值更改后尝试了几个方法,如pBar.update和pBar.refresh。我编辑了一些代码,使其更易于理解。见下文,一旦我报告进度后台工作人员progresschanged执行,再次pBar值的变化,我看到它的变化,并且文本框文本得到更新,但由于某种原因,进一步下面的代码进度条中的%文本被覆盖。再次,我看到了分秒的%。你可以看到我的一些评论,我正在尝试各种事情,看看它是否会重绘%视觉C与背景工作人员锐利的进度条
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
backgroundWorker1.ReportProgress(10);
collect_long_process();
}
private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
pBar.Value = e.ProgressPercentage;
txtBox_pBar.Text = "Gathering info";
int percent = 10;//(int)(((double)pBar.Value/(double)pBar.Maximum) * 100);
pBar.CreateGraphics().DrawString(percent.ToString() + "%", new Font("Arial", (float)8.25, FontStyle.Regular),
Brushes.Black, new PointF(pBar.Width/2 - 10, pBar.Height/2 - 7));
//pBar.Update();
//Application.DoEvents();
}
+1。一个更符合标准接口约定的解决方案是使用百分比标签,而不是将其叠加到进度条的顶部。 –
@Adam:确实,虽然内联标签的进度条有点常见。 – SLaks
我已经结束了它:)我试过它的标签工作正常..嗯。 thx为洞察LOL。 – thanosazlin