【问题标题】:Progress bar text display issue进度条文字显示问题
【发布时间】:2014-10-17 04:17:18
【问题描述】:

我正在使用以下代码在进度条中显示 % 值。但是显示存在一些问题。文本后面有某种背景颜色(与文本颜色相同)(即百分比值).请帮忙

Dim percent As Integer = CInt(Math.Truncate((CDbl(prgProgressBar.Value - prgProgressBar.Minimum) / CDbl(prgProgressBar.Maximum - prgProgressBar.Minimum)) * 100))

Using gr As Graphics = prgProgressBar.CreateGraphics()

  gr.DrawString(percent.ToString() & "%", SystemFonts.DefaultFont, Brushes.Green, New PointF(prgProgressBar.Width / 2 - (gr.MeasureString(percent.ToString() & "%", SystemFonts.DefaultFont).Width / 2.0F), prgProgressBar.Height / 2 - (gr.MeasureString(percent.ToString() & "%", SystemFonts.DefaultFont).Height / 2.0F)))

End Using

【问题讨论】:

  • 在绘制字符串之前使进度条prgProgressBar.Invalidate()无效Using gr...
  • 好的。我添加它作为答案,解释问题的原因以及为什么Invalidate 修复它。

标签: vb.net progress-bar


【解决方案1】:

因为您在进度条上绘制了一个字符串而没有要求它先重新绘制,所以旧字符串仍然存在,这就是文本具有“背景颜色”的原因。

通过调用Invalidate,您可以在进度条上强制重新绘制,并删除旧字符串。

现在你有了一张新纸来画新东西。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-25
    • 2011-03-10
    相关资源
    最近更新 更多