您的位置:首页 > 编程语言 > C#

C#控件之:进度条(ProgressBar)

2017-08-30 16:22 302 查看

一、重绘进度条

public class CustomProgressBar:ProgressBar
{
public CustomProgressBar()
{
this.SetStyle(ControlStyles.UserPaint, true);
this.SetStyle(ControlStyles.OptimizedDoubleBuffer, true);
}
protected override void OnPaint(PaintEventArgs e)
{
SolidBrush brush = null;
Rectangle rec = new Rectangle(0, 0, this.Width, this.Height);

if(ProgressBarRenderer.IsSupported)
{
ProgressBarRenderer.DrawHorizontalBar(e.Graphics, rec);
}
Pen pen = new Pen(this.ForeColor, 1);
e.Graphics.DrawRectangle(pen, rec);
e.Graphics.FillRectangle(new SolidBrush(this.BackColor), 2, 2, rec.Width - 4, rec.Height - 4);

rec.Height -= 4;
rec.Width = (int)(rec.Width * ((double)Value / Maximum)) - 4;
brush = new SolidBrush(this.ForeColor);
e.Graphics.FillRectangle(brush, 2, 2, rec.Width, rec.Height);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: