這篇文章主要介紹了C#如何實現(xiàn)帶百分比的進(jìn)度條功能,具有一定借鑒價值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。
創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),蛟河企業(yè)網(wǎng)站建設(shè),蛟河品牌網(wǎng)站建設(shè),網(wǎng)站定制,蛟河網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,蛟河網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
功能需求:
如果程序中會執(zhí)行一個耗時的計算過程,我想在用戶點(diǎn)擊按鈕后,彈出一個進(jìn)度條窗口,顯示正在執(zhí)行的進(jìn)度(最好能帶有百分比),執(zhí)行完成后,進(jìn)度條窗口關(guān)閉,回到主程序窗口。 在關(guān)閉子窗口之前父窗體不能點(diǎn)擊操作。
實現(xiàn)方法:
先設(shè)計Form2進(jìn)度條窗體,在Form2中央上放ProgressBar控件progressBar1和Label控件label1,代碼:
public partial class Form2 : Form { public Form2(int _Minimum,int _Maximum)//帶參數(shù),表示進(jìn)度條的范圍的最小值和最大值 { InitializeComponent(); progressBar1.Maximum=_Maximum;//設(shè)置范圍最大值 progressBar1.Value = progressBar1.Minimum = _Minimum;//設(shè)置范圍最小值 } public void setPos(int value)//設(shè)置進(jìn)度條當(dāng)前進(jìn)度值 { if (value < progressBar1.Maximum)//如果值有效 { progressBar1.Value = value;//設(shè)置進(jìn)度值 label1.Text = (value * 100 / progressBar1.Maximum).ToString() + "%";//顯示百分比 } Application.DoEvents();//重點(diǎn),必須加上,否則父子窗體都假死 } private void Form2_Load(object sender, EventArgs e) { this.Owner.Enabled = false;//設(shè)置父窗體不可用 } private void Form2_FormClosed(object sender, FormClosedEventArgs e) { this.Owner.Enabled = true;//回復(fù)父窗體為可用 } }
調(diào)用窗體For1m設(shè)計,添加Button控件button1,事件代碼:
private void button1_Click(object sender, EventArgs e) { Form2 fm = new Form2(0,100); fm.Show(this);//設(shè)置父窗體 for (int i = 0; i < 100; i++) { fm.setPos(i);//設(shè)置進(jìn)度條位置 Thread.Sleep(100);//睡眠時間為100 } fm.Close();//關(guān)閉窗體 }
補(bǔ)充:有朋友說在vs2003中fm.Show(this):是不支持的,那么可以將From2的構(gòu)造函數(shù)多加一個參數(shù):
public Form OwnerForm; public Form2(int _Minimum,int _Maximum,Form _OwnerForm)//帶參數(shù),表示進(jìn)度條的范圍的最小值和最大值 { InitializeComponent(); progressBar1.Maximum=_Maximum;//設(shè)置范圍最大值 progressBar1.Value = progressBar1.Minimum = _Minimum;//設(shè)置范圍最小值 this.OwnerForm=_OwnerForm; } private void Form2_Load(object sender, EventArgs e) { this.OwnerForm.Enabled = false;//設(shè)置父窗體不可用 } private void Form2_FormClosed(object sender, FormClosedEventArgs e) { this.OwnerForm.Enabled = true;//回復(fù)父窗體為可用 }
Form1中相應(yīng)的修改為:
private void button1_Click(object sender, EventArgs e) { Form2 fm = new Form2(0,100,this); fm.Show();//設(shè)置父窗體 for (int i = 0; i < 100; i++) { fm.setPos(i);//設(shè)置進(jìn)度條位置 Thread.Sleep(100);//睡眠時間為100 } fm.Close();//關(guān)閉窗體 }
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享C#如何實現(xiàn)帶百分比的進(jìn)度條功能內(nèi)容對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問題就找創(chuàng)新互聯(lián),詳細(xì)的解決方法等著你來學(xué)習(xí)!
文章名稱:C#如何實現(xiàn)帶百分比的進(jìn)度條功能
分享路徑:http://www.chinadenli.net/article24/iigeje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、營銷型網(wǎng)站建設(shè)、全網(wǎng)營銷推廣、靜態(tài)網(wǎng)站、Google、面包屑導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)