最近青岛 微软开发者俱乐部 www.qddn.net 上有位网友希望得到能改变颜色的进度条,正好我也在做一套.net的通用组件,就把它写出来了,因为比较简单,也没有多少技术含量,就把它帖出来,希望给别的朋友一点帮助
这个进度条控件,除了具有普通进度条的功能以外,还具有如下功能:
设置进度条的背景色和前景色
设置进度条的外观方式(3D,single,none)
是否自动显示当前进度比例(比如在进度条的中间显示当前进度58%)
当然,这个功能还可以增加很多,比如背景色和前景色也可以用图片代替,还有其它的功能打算在以后有时间时再添加,这次就写这些了。
代码如下:
using System;
using System.Collections;
using System.ComponentModel;
using System.Drawing;
using System.Drawing.Drawing2D ;
using System.Data;
using System.Windows.Forms;
namespace XiaoPang.Windows
{
///
1<summary>
2
3/// GProgressBar 的摘要说明。
4
5/// </summary>
public class GProgressBar : System.Windows.Forms.UserControl
{
///
1<summary>
2
3/// 必需的设计器变量。
4
5/// </summary>
private System.ComponentModel.Container components = null ;
public GProgressBar()
{
// 该调用是 Windows.Forms 窗体设计器所必需的。
InitializeComponent();
base .Height = 23 ;
this .Resize+= new EventHandler(GProgressBar_Resize);
this .LocationChanged+= new EventHandler(GProgressBar_Resize);
}
private void GProgressBar_Resize( object sender,System.EventArgs e)
{
base .Refresh() ;
}
private int mMax =100;
[Browsable( true ), Description(" 最大值 "), Category("XiaoPang")]
public int Max
{
get
{
return mMax ;
}
set
{
mMax = value > 0? value :1;
}
}
[Browsable( true ), Description(" 大小 "), Category("XiaoPang")]
public new Size Size
{
get
{
return base .Size ;
}
set
{
base .Size = value ;
}
}
private int mMin =0;
[Browsable( true ), Description(" 最小值 "), Category("XiaoPang")]
public int Min
{
get
{
return mMin ;
}
set
{
mMin = value ;
}
}
private int mStep = 1 ;
[Browsable( true ), Description(" 步长 "), Category("XiaoPang")]
public int Step
{
get
{
return mStep ;
}
set
{
mStep = value ;
}
}
[Browsable( true ), Description(" 背景色 "), Category("XiaoPang")]
public override Color BackColor
{
get
{
return base .BackColor ;
}
set
{
base .BackColor = value ;
}
}
[Browsable( true ), Description(" 前景色 "), Category("XiaoPang")]
public override Color ForeColor
{
get
{
return base .ForeColor ;
}
set
{
base .ForeColor = value ;
}
}
private bool mRate = false ;
[Browsable( true ), Description(" 是否显示比例数字 "), Category("XiaoPang")]
public bool Rate
{
get
{
return mRate ;
}
set
{
mRate = value ;
}
}
private int mValue = 0 ;
[Browsable( true ), Description(" 当前值 "), Category("XiaoPang")]
public int Value
{
get
{
return mValue ;
}
set
{
if ( value <= this .Max)
mValue = value ;
else
mValue = this .Max ;
this .Refresh() ;
}
}
<p class="MsoNormal" sty