2014-10-17 82 views
0

我正在使用下面的代碼在我的進度條中顯示%值。但是顯示有一些問題。背後有一些背景顏色(與文本顏色相同)文本(即百分比值)。請幫助進度條文本顯示問題

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 
+1

使進度條無效'prgProgressBar.Invalidate()'在繪製字符串之前'使用gr ...' – kennyzx 2014-10-17 04:32:30

+0

謝謝。它的工作原理 – user3458716 2014-10-17 04:44:46

+0

OK。我將其添加爲答案,解釋問題的原因以及爲什麼'Invalidate'修復它。 – kennyzx 2014-10-17 06:27:52

回答

1

因爲你畫的進度字符串,不要求其先重畫,老弦依然存在,這就是爲什麼文本有「背景顏色」。

通過調用Invalidate,您在進度條上強制重繪,舊字符串將被刪除。

現在你有一張新紙來繪製新東西。