前言:
介绍C#自带的Progressbar控件的调用方法,对程序运行的进度进行提示。
内容:
接下来,介绍进度条在Winform界面中具体的应用和步骤。
- 在项目中新建一个Winform界面,上面放一个ProgressBar和label控件,默认命名。

重写构造函数添加一个setPos函数
给界面添加一个Load事件,一个FormClosed事件
public FrmProcsBar(int _Minimun, int _Maximum) { InitializeComponent(); progressBar1.Maximum = _Maximum;//设置范围最大值 progressBar1.Value = progressBar1.Minimum = _Minimun;//设置范围最小值 } public void setPos(int value) { if (value < progressBar1.Maximum) { progressBar1.Value = value;//设置进度值 label1.Text = (value * 100 / progressBar1.Maximum).ToString() + "%"; } Application.DoEvents();//重点,必须加上,否则父子窗体都假死 } private void FrmProcsBar_Load(object sender, EventArgs e) { this.Owner.Enabled = false; } private void FrmProcsBar_FormClosed(object sender, FormClosedEventArgs e) { this.Owner.Enabled = true; } - 在主界面添加一个调用的按钮

首先在主界面公用区域创建一个进度条界面的对象,以及调用的委托
//定义一个进度条对象,以及一个调用的委托 FrmProcsBar fm; delegate void EventJisuan(object sender, EventArgs e); private void button1_Click(object sender, EventArgs e) { fm = new FrmProcsBar(0, 101); this.Invoke(new EventJisuan(Jisuan), sender, e); MessageBox.Show("运行结束"); } private void Jisuan(object sender, EventArgs e) { fm.Show(this); fm.setPos(0);//设置进度条位置0% //需要加载进度的内容 for (int i = 0; i < 200000000; i++) { i++; } fm.setPos(20);//设置进度条位置20% for (int i = 0; i < 200000000; i++) { i++; } fm.setPos(40);//设置进度条位置40% for (int i = 0; i < 200000000; i++) { i++; } fm.setPos(60);//设置进度条位置60% for (int i = 0; i < 200000000; i++) { i++; } fm.setPos(80);//设置进度条位置80% for (int i = 0; i < 200000000; i++) { i++; } fm.setPos(100);//设置进度条位置100% Thread.Sleep(300); fm.Close(); }
运行效果:
结束语:
例总的来说,就是进度条需要放在一个新建的Form上,然后再这个Form里面加好内容,然后使用委托来开辟一个进度条同时运行的线程。估算好要加进度条所有内容的进度百分比,添加百分比直到结束就可以。
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/211438.html原文链接:https://javaforall.net
