C#下實現在ProgressBar控件上添加百分比

        在利用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;
        }

這樣在需要調用進度條的函數處實例化進度條對話框的一個對象,然後調用這個函數便實現了在進度條上添加百分比的功能。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章