C# WinForm进度条实现浅析

开发 后端
C# WinForm进度条实现是如何的呢?C# WinForm进度条实现的具体代码是什么呢?那么本文就向你介绍这方面的情况。

C# WinForm进度条实现:首先是进度条窗体,需要在上面添加进度条,然后去掉ControlBox。除此外,还要增加一个方法,用来控制进度条的增加幅度,具体如下:

/// ﹤summary﹥  
/// Increase process bar  
/// ﹤/summary﹥  //C# WinForm进度条实现
/// ﹤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;  

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.

C# WinForm进度条实现之主窗体:

如何进行操作了,首先需要定义两个私有成员,一个委托。其中一个私有成员是保存当前进度条窗体对象,另一个是保存委托方法(即增加进度条尺度),具体如下:

private frmProcessBar myProcessBar = null;  
private delegate bool IncreaseHandle( int nValue );  
private IncreaseHandle myIncrease = null
  • 1.
  • 2.
  • 3.

C# WinForm进度条实现之在主窗体中提供函数来打开进度条窗体,如下:

/// ﹤summary﹥  
/// Open process bar window  
/// ﹤/summary﹥  
private void ShowProcessBar()  
{  
myProcessBar = new frmProcessBar();  
 
// Init increase event  
myIncrease = 
new IncreaseHandle( myProcessBar.Increase );  
myProcessBar.ShowDialog();  
myProcessBar = null;  

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.

C# WinForm进度条实现之开始创建线程来运行,具体如下:

/// ﹤summary﹥  
/// Sub thread function  
/// ﹤/summary﹥  
private void ThreadFun()  
{  
MethodInvoker mi =   
new MethodInvoker( ShowProcessBar );  
this.BeginInvoke( mi );  
 
Thread.Sleep( 1000 );  
//Sleep a while to show window  
 
bool blnIncreased = false;  
object objReturn = null;  
do 
{  
Thread.Sleep( 50 );  
objReturn = this.Invoke(  
 this.myIncrease,  
new object[]{ 2 } );  
blnIncreased = (bool)objReturn ;  
}  
while( blnIncreased );  
}  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.

注意以上,在打开进度条窗体和增加进度条进度的时候,一个用的是BeginInvoke,一个是Invoke,这里的区别是BeginInvoke不需要等待方法运行完毕,而Invoke是要等待方法运行完毕。还有一点,此处用返回值来判断进度条是否到头了,如果需要有其他的控制,可以类似前面的方法来进行扩展。

C# WinForm进度条实现之启动线程,可以如下:

Thread thdSub = new Thread(   
new ThreadStart( ThreadFun ) );  
thdSub.Start(); 
  • 1.
  • 2.
  • 3.

这样,一个用模式打开进度条窗体就做完了。

C# WinForm进度条实现的基本情况就向你介绍到这里,希望对你学习和了解C# WinForm进度条实现有所帮助。

【编辑推荐】

  1. C#进度条的使用及开发浅析
  2. C#进度条使用之多线程应用浅析
  3. C#进度条实现之异步实例浅析
  4. C#进度条实现实例
  5. C#进度条之控制台显示浅析
责任编辑:仲衡 来源: CSDN
相关推荐

2009-08-18 09:49:00

C# listview

2009-08-17 14:36:15

C#进度条实现

2009-08-17 14:41:47

C#进度条实现

2009-08-17 13:56:29

C#进度条的使用

2009-08-17 15:05:41

C#进度条

2009-08-17 14:08:33

C#进度条使用

2009-08-17 17:15:48

C# 进度条效果

2009-08-27 14:01:41

C#进度条

2024-08-06 14:29:37

2009-08-17 16:41:03

C#多线程控制

2009-08-17 16:29:56

C#多线程控制

2015-07-31 11:19:43

数字进度条源码

2023-12-11 17:15:05

应用开发波纹进度条ArkUI

2024-06-13 08:15:00

2009-08-17 16:56:51

C#多线程控制进度条

2009-08-17 16:49:46

C#多线程控制

2009-09-11 10:41:20

C# WinForm控

2023-11-30 11:38:29

CSS网页进度条

2009-07-21 14:49:55

XmlHttpRequ文件上传进度条

2011-07-05 15:16:00

QT 进度条
点赞
收藏

51CTO技术栈公众号