(本人博客代码部分全部为测试通过后手敲,有可能敲错单词,勿喷)
先看效果图:
首先新建一个ProgressBar.cs文件
在这个文件里面增加写入下面的代码:
public calss MyProgressBar:ProgressBar
{
public MyProgressBar()
{
base.SetStyle(ControlStyles.UserPaint,true);
}
//重写OnPaint方法
protected override void OnPaint(PaintEventArgs e)
{
SolidBrush brush=null;
Rectangle bounds=new Rectangle(0,0,base.Width,base.Height);
bounds.Height-=4;
bounds.Width=((int)(bounds.Width*(((double)base.Value)/((double)base.Maximum))))-4;
brush=new SolidBrush(Color.Blue);
e.Graphics.FillRectangle(brush,2,2,bounds.Width,bounds.Height);
}
}
创建一个Form窗体
添加以下两个控件progressBar1和button1
private void Button1_Click(object sender,EventArgs e)
{
//定义一个自己写的进度条
MyProgressBar cp=new MyProgressBar();
cp.Parent=progressBar1;
cp.Location=new Point(0,0);
cp.Minimum=0;//进度条显示的最小值
cp.Maximum=100;//
cp.Width=progressBar1.Width;
cp.Height=progressBar1.Height;
cp.BackColor=Color.Yellow;
//定义一个Label显示原始色
Label l=new Label();
l.Parent=cp;
l.BackColor=Color.Transparent;
l.TextAlign=System.Drawing.ContentAlignment.MiddleCenter;
l.Width=cp.Width;
l.Height=cp.Height;
for(int i=0;i<100;i++)
{
Thread.Sleep(1000);
cp.Value=i+1;
Font font=new Font("宋体",
,(float)16,FontStyle.Regular);
l.Text=i.ToString();
Application.DoEvents();
}
}