在利用C#编写Windows窗体程序的过程中,程序运行过程中界面如果没有一些提示总是感觉缺点儿什么,给用户的感觉不知道程序是否在运行,所以这是就想到了为程序添加进度条控件ProgressBar,但是进度条添加上以后,ProgressBar这个控件并没有为用户提供在其上添加显示进度百分比的属性,用户要想实现在精度条上显示百分比,就不是那么简单了,这里我把自己实现的过程写出来与大家共享。
首先我想到的是在ProgressBar控件上添加一个Lable控件,但是执行效果总是那么不尽人意,因为使用Lable的话在进度跳上总是有一个白色的框框,看着不是很美观。想解决这个问题呢,就想到了把Lable的背景色设置为透明颜色,在网上看到说在Lable的属性中BackColor里可已将其设置为Web下的Transparent,即背景颜色为父窗体的颜色,但是这样一来Lable的背景色并不是透明的,只是变成了其所在父窗体的背景色,在运行过程中任然不是很美观。于是就将Lable的父窗体改为ProgressBar,代码如下
this.label1.Parent = this.progressBar1;
这样改了以后本来以为其背景色会跟进度条的颜色一样,结果仍然是悲剧,这样就放弃了这个思路。后来就开始在网上搜索,我感觉微软一定考虑到了这个问题,肯定会有解决办法的,上天不负有心人终于找到了一个函数来解决这个问题DrawString(),这个函数就是实现在进度条上添加文字的函数,废话不多说直接上代码
public void SetProcessValue(string TitleName,int value)
{
this.Text = TitleName;
string str=value.ToString()+"%";
Font font = new Font("Times New Roman", (float)11, FontStyle.Regular);
PointF pt = new PointF(this.progressBar1.Width / 2 - 10, this.progressBar1.Height / 2 - 10);
this.progressBar1.CreateGraphics().DrawString(str, font, Brushes.Black, pt);
this.progressBar1.Value = value;
}
这样在需要调用进度条的函数处实例化进度条对话框的一个对象,然后调用这个函数便实现了在进度条上添加百分比的功能。