进度条问题,求各位同仁大侠帮忙。。。

lrcitpower 2011-07-26 04:03:48
我在做一个C#中winform窗体中的信息导入导出excel文件,现在实现了导入导出功能,但是在大量数据情况下,页面会产生假死,既在导入导出过程中处理大量的数据而占用了很长的时间,现在想做一个进度条表示这一数据处理的过程,要求进度条在单独的一个弹出窗口显示,也可以加上信息处理的百分数等,各位有好的方法和建议,望不吝赐教。
...全文
94 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhangzhilin565 2011-07-26
  • 打赏
  • 举报
回复
在页面上加一个进度条的控件,再装上面的线程方法用上去就可以了,就是设几个参数的,
sdl2005lyx 2011-07-26
  • 打赏
  • 举报
回复
楼上的方法很好,应该能解决LZ的问题。。。
isjoe 2011-07-26
  • 打赏
  • 举报
回复

// 显示进度条的委托声明
delegate void ShowProgressDelegate( int totalStep, int currentStep );

// 显示进度条
void ShowProgress( int totalStep, int currentStep )
{
_Progress.Maximum = totalStep;
_Progress.Value = currentStep;
}

// 执行任务的委托声明
delegate void RunTaskDelegate( int seconds );


// 执行任务此为线程函数,你导入导出的代码写在这里面即可(怎么开线程我就不说了,例子很多)
void RunTask( int seconds )
{
ShowProgressDelegate showProgress = new ShowProgressDelegate( ShowProgress );

// 模拟假任务,每 1 / 4 秒 显示进度一次
for( int i = 0; i < seconds * 4; i++ )
{
Thread.Sleep( 250 );

// 显示进度条
// 程序开始的时候,你必须计算好进度条的步进,通过导出导入的量来计算
this.Invoke( showProgress, new object[] { seconds * 4, i + 1 } );
}
}
lrcitpower 2011-07-26
  • 打赏
  • 举报
回复
导入导出放到线程里面我能完成,但是不知道再怎么实现弹出新的窗口绘制进度条。。
isjoe 2011-07-26
  • 打赏
  • 举报
回复
把导入导出放到线程中,然后根据进度绘制进度条。
hen_ai_hen_ai_ni 2011-07-26
  • 打赏
  • 举报
回复
如果是线程的话,就是Thread类而已,仅仅多了3、4句话,你用C# Thread去baidu搜索一下吧,满屏幕都是你的答案。
lrcitpower 2011-07-26
  • 打赏
  • 举报
回复
首先谢谢你,我是用线程做的,但是我对线程不是怎么的了解,没有一个清晰的思路,能不能说的详细点或是给段代码参考?
肖恩 2011-07-26
  • 打赏
  • 举报
回复
用线程啊

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧