這篇文章主要介紹了C#如何實(shí)現(xiàn)帶百分比的進(jìn)度條功能,具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),蛟河企業(yè)網(wǎng)站建設(shè),蛟河品牌網(wǎng)站建設(shè),網(wǎng)站定制,蛟河網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,蛟河網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
功能需求:
如果程序中會(huì)執(zhí)行一個(gè)耗時(shí)的計(jì)算過(guò)程,我想在用戶點(diǎn)擊按鈕后,彈出一個(gè)進(jìn)度條窗口,顯示正在執(zhí)行的進(jìn)度(最好能帶有百分比),執(zhí)行完成后,進(jìn)度條窗口關(guān)閉,回到主程序窗口。 在關(guān)閉子窗口之前父窗體不能點(diǎn)擊操作。
實(shí)現(xiàn)方法:
先設(shè)計(jì)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è)計(jì),添加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);//睡眠時(shí)間為100
}
fm.Close();//關(guān)閉窗體
}補(bǔ)充:有朋友說(shuō)在vs2003中fm.Show(this):是不支持的,那么可以將From2的構(gòu)造函數(shù)多加一個(gè)參數(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);//睡眠時(shí)間為100
}
fm.Close();//關(guān)閉窗體
}感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享C#如何實(shí)現(xiàn)帶百分比的進(jìn)度條功能內(nèi)容對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,遇到問(wèn)題就找創(chuàng)新互聯(lián),詳細(xì)的解決方法等著你來(lái)學(xué)習(xí)!
文章名稱:C#如何實(shí)現(xiàn)帶百分比的進(jìn)度條功能
分享路徑:http://chinadenli.net/article24/iigeje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、營(yíng)銷型網(wǎng)站建設(shè)、全網(wǎng)營(yíng)銷推廣、靜態(tài)網(wǎng)站、Google、面包屑導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)