本文实例报告了C#完成带百分比的进度条功用。分享给人人供人人参考,细致以下:
功用需求:
假如顺序中会实行一个耗时的盘算历程,我想在用户点击按钮后,弹出一个进度条窗口,显现正在实行的进度(最好能带有百分比),实行完成后,进度条窗口封闭,回到主顺序窗口。 在封闭子窗口之前父窗体不能点击操纵。
完成要领:
先设想Form2进度条窗体,在Form2中心上放ProgressBar控件progressBar1和Label控件label1,代码:
public partial class Form2 : Form { public Form2(int _Minimum,int _Maximum)//带参数,示意进度条的局限的最小值和最大值 { InitializeComponent(); progressBar1.Maximum=_Maximum;//设置局限最大值 progressBar1.Value = progressBar1.Minimum = _Minimum;//设置局限最小值 } public void setPos(int value)//设置进度条当前进度值 { if (value < progressBar1.Maximum)//假如值有用 { progressBar1.Value = value;//设置进度值 label1.Text = (value * 100 / progressBar1.Maximum).ToString() + "%";//显现百分比 } Application.DoEvents();//重点,必需加上,不然父子窗体都假死 } private void Form2_Load(object sender, EventArgs e) { this.Owner.Enabled = false;//设置父窗体不可用 } private void Form2_FormClosed(object sender, FormClosedEventArgs e) { this.Owner.Enabled = true;//复兴父窗体为可用 } }
挪用窗体For1m设想,增加Button控件button1,事宜代码:
private void button1_Click(object sender, EventArgs e) { Form2 fm = new Form2(0,100); fm.Show(this);//设置父窗体 for (int i = 0; i < 100; i++) { fm.setPos(i);//设置进度条位置 Thread.Sleep(100);//就寝时候为100 } fm.Close();//封闭窗体 }
补充:有朋侪说在vs2003中fm.Show(this):是不支持的,那末能够将From2的组织函数多加一个参数:
public Form OwnerForm; public Form2(int _Minimum,int _Maximum,Form _OwnerForm)//带参数,示意进度条的局限的最小值和最大值 { InitializeComponent(); progressBar1.Maximum=_Maximum;//设置局限最大值 progressBar1.Value = progressBar1.Minimum = _Minimum;//设置局限最小值 this.OwnerForm=_OwnerForm; } private void Form2_Load(object sender, EventArgs e) { this.OwnerForm.Enabled = false;//设置父窗体不可用 } private void Form2_FormClosed(object sender, FormClosedEventArgs e) { this.OwnerForm.Enabled = true;//复兴父窗体为可用 }
Form1中响应的修改成:
private void button1_Click(object sender, EventArgs e) { Form2 fm = new Form2(0,100,this); fm.Show();//设置父窗体 for (int i = 0; i < 100; i++) { fm.setPos(i);//设置进度条位置 Thread.Sleep(100);//就寝时候为100 } fm.Close();//封闭窗体 }
以上就是C#中怎样完成带百分比的进度条功用的示例代码分享的细致内容,更多请关注ki4网别的相干文章!