winform 原生控件中包含进度条控件 ProgressBar。
但这个控件并没有告诉我们如何在上面实现 显示百分比进度的方式,或者说根本就不支持。但没
有百分比显示的进度条是没有灵魂的,可能是有点让人一头雾水的。
还好我们可以通过实现 ProgressBar 的 OnPaint 方法实现这个效果
主干核心代码如下
protected override void OnPaint(PaintEventArgs e)
{
Rectangle rect = ClientRectangle;
Graphics g = e.Graphics;
ProgressBarRenderer.DrawHorizontalBar(g, rect);
rect.Inflate(-3, -3);
if (Value > 0)
{
var clip = new Rectangle(rect.X, rect.Y, (int)((float)Value / Maximum * rect.Width), rect.Height);
ProgressBarRenderer.DrawHorizontalChunks(g, clip);
}
string text = string.Format("{0}%", Value * 100 / Maximum); ;
using (var font = new Font(FontFamily.GenericSerif, 20))
{
SizeF sz = g.MeasureString(text, font);
var location = new PointF(rect.Width / 2 - sz.Width / 2, rect.Height / 2 - sz.Height / 2 + 2);
g.DrawString(text, font, Brushes.Black, location);
}
}
实现效果如下 点击 “开始”,进度条效果如下,进度可以根据自己的实际业务需求更改替换
代码下载地址:
https://download.csdn.net/download/weixin_41625929/89675114
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
.NET C# JAVA 基础交流群 1095936339 欢迎入群 交流