在利用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;
}
這樣在需要調用進度條的函數處實例化進度條對話框的一個對象,然後調用這個函數便實現了在進度條上添加百分比的功能。