新建一个类MyProcessBar
internal class MyProcessBar
{
private frmProcessBar myProcessBar = null;//进度条窗体事件
private delegate bool IncreaseHandle(int nValue);//声明一个委托
private IncreaseHandle myIncrease = null;//定义一个委托变量
public MyProcessBar()
{
}
/// <summary>
/// 打开进度条窗体
/// </summary>
private void ShowProcessBar()
{
myProcessBar = new frmProcessBar();
// 绑定事件
myIncrease = new IncreaseHandle(myProcessBar.Increase);
myProcessBar.ShowDialog();
myProcessBar = null;
}
/// <summary>
/// 线程功能
/// </summary>
private void ThreadFun(object o)
{
Form fm = (Form)o;
//声明一个委托,ShowProcessBar为改委托所托管的代码,必须为void
MethodInvoker mi = new MethodInvoker(ShowProcessBar);
//异步调用ShowProcessBar(不用等ShowProcessBar方法执行完,程序可以往下执行)
fm.BeginInvoke(mi);
Thread.Sleep(1000);//线程停止一秒,让进度条窗体显示
bool blnIncreased = false;
object objReturn = null;
do
{
Thread.Sleep(50);
//同步调用myProcessBar.Increase(),程序要等该方法执行完,才能往下执行
objReturn = fm.Invoke(this.myIncrease,
new object[] { 2 });
blnIncreased = (bool)objReturn;
}
while (blnIncreased);
}
/// <summary>
/// 线程启动
/// </summary>
/// <param name="o"></param>
public void Start(object o)
{
Thread thdSub = new Thread(ThreadFun);
thdSub.IsBackground = true;
thdSub.Start(o);
}
}
新建一个窗体frmProcessBar(进度条窗体)添加ProcessBar控件
public partial class frmProcessBar : Form
{
public frmProcessBar()
{
InitializeComponent();
}
private void frmProcessBar_Load(object sender, EventArgs e)
{
}
/// <summary>
/// Increase process bar
/// </summary>
/// <param name="nValue">the value increased</param>
/// <returns></returns>
public bool Increase(int nValue)
{
if (nValue > 0)
{
if (prcBar.Value + nValue < prcBar.Maximum)
{
prcBar.Value += nValue;
return true;
}
else
{
prcBar.Value = prcBar.Maximum;
this.Close();
return false;
}
}
return false;
}
}
主体窗
private void btnStart_Click(object sender, EventArgs e)
{
MyProcessBar pb = new MyProcessBar();
pb.Start(this);
}
- 大小: 6.9 KB
分享到:
相关推荐
Java实现进度条 Java实现进度条 Java实现进度条 Java实现进度条 Java实现进度条
java 进度条的实现java 进度条的实现java 进度条的实现java 进度条的实现java 进度条的实现java 进度条的实现java 进度条的实现java 进度条的实现java 进度条的实现
实现两个不同颜色的圆形进度条
kotlin实现的进度条
asp.net 2.0进度条实现asp.net 2.0进度条实现
环形进度条实现, andoid 系统可以参考,完整工程。
塞班s60 的一个进度条实现。可以用左右键控制进度条。
真正实现了进度!顶一下! 一个进度条,有源代码,可以跑起来
JS进度条,实现同步增长效果,我觉得很好用,大家可以下载下来试试。
java实现进度条
Making a Doughnut Progress Bar 实现一个甜甜圈进度条
javascript 实现的进度条效果 javascript 实现的进度条效果
应读者要求 写个了一个简单地springboot+websocket实现进度条的demo。
用jquery实现的进度条插件,使用非常简单,可用做程序进度显示或AJAX文件上传
在需要用到进度条显示后台运算进度的时候,如果同时进行算法运算以及界面进度条显示的话,那往往是算法计算结束了进度条才显示走条,无法同时进行,如果用到BackgroundWorker的话,就可以完美解决这个问题。
java文件上传进度条实现,可以参考下,会有意外收获
Android ProgressDialog 进度条对话框的模拟实现和代码解析,此为例子源代码,在本例中实现进度条需要调用onPrepareDialog()方法和showDialog(),应用程序处理进度条指示功能。
jquery和angularJS两种百分比进度条实现方式
js进度条简单实现,详细可见我的blog http://blog.csdn.net/ssqmeng/archive/2008/11/03/3211107.aspx