现在点击控件TREEVIEW的树中,选中节点点击获取报表的CommandBar命令,报表最终以网页形式打开,但在获取报表数据时间长点,需要等待10秒左右,想做一进度条来提醒用户,最好带有百分比,谢谢各位高手指导下,入和来添加进度条。(获取报表数据时调用客户提供的借口,自己并不能控制获取速度)

解决方案 »

  1.   

    我在论坛上看到很多人文这方面的问题,进度条他们都是说选择两个控件来控制(progressBar1和backgroundWorker1),我看了半天还是不懂,因为我是新手,做了两年多嵌入式,由于项目需求突然搞起C#来了,好晕啊~~~~!兄弟 你说的循环图片来显示??如何实现 是否可给个代码的模板我研究下、
      

  2.   

    http://download.csdn.net/detail/HDNGO/835515
      

  3.   

    一直用backgroundWorker~~~~推荐使用,很简单的
      

  4.   

    我的意思是最好有百分比,如果不好实现那肯定就不要百分比了,这个也只是一个意见,可能是要实现的。
    时间要多久是要根据当前工程的大小来定,如果小工程也就2秒到3秒得样子啊~~~~~
    yalan兄,backgroundWorker这个控件可以实现不啊??搞点代码说说。分就发给你了。我新手啊。
      

  5.   

    精确的进度很难吧,别显示进度,显示“Loading”就行了。
      

  6.   

    BackgroundWorker
    ProgressBar
    配合是最简单方便的方法了,建议你好好看看,并不难,线程这些问题都封装好了,就是将获取报表数据这个功能做到一个方法里,用BackgroundWorker后台执行,并在里面 ReportProgress() 合适的时候报告进度,ProgressChanged事件里去更新ProgressBar状态
      

  7.   

    做个gif加载的动态图,放上面得了
      

  8.   

    谢谢各位兄弟了,BackgroundWorker和ProgressBar两个控件结合起来运用是可以,但是获取报表的数据时调用用户提供的接口,我不能控制它的进度,所以如何传递和获取当前的进度回报给BackgroundWorker控件的ReportProgress()方法当前进度?假的不好吧 呵呵 
      

  9.   

    这弄个Loding的动态图片放那就行了呀!
      

  10.   

    谢谢各位的建议,我现在准备“只是想告诉客户正在查询中,做一个GIF动画,查询前显示,完成后关闭就行了,不纠结于进度条”,但是这个GIF动画图片要如何显示呢?在什么控件能显示。还有那个兄弟帮下忙,怎么给你们加分,我要给某些兄弟加点分,呵呵~~~~
      

  11.   

    用ajax技术啊
    点击查询的时候,添加一个遮罩层,显示gif动画,同时屏蔽原页面,
    并传递一个回调函数,使得服务器执行完的时候移除遮罩层
      

  12.   

    ajax   jquery 只能在web中使用
      

  13.   

    22楼, 我是在VS的WINfORM下的C#啊,能用吗?
      

  14.   

    不知道任务得多久没办法显示进度的。GIF图
      

  15.   


    嗯,我就是这个意思,弄个好看的循环的GIF就很好看了呵呵,或者直接WPF的更好看嘿嘿我的意思是弄如下类似的GIF
    这里有很多,点击浏览
      

  16.   

    各位兄弟,我现在在VS工具箱中用了pictureBox控件,然后在里面添加了一张动态的GIF图片,是浏览本地磁盘选中GIF图添加到pictureBox控件中,但貌似好像没有动态的效果出来,是不是只有在HTML下才有动态效果???
    就是换台电脑验证我软件功能,我怀疑图片都不一定出来,VS资源文件好像不支持GIF啊,只支持16*16的位图啊~~~麻烦啊 对了,怎么给你们加分,我要给你们加分,怎么加法??
      

  17.   

    用 ImageAnimator 类,pictureBox控件只能支持单帧的gif
      

  18.   

    对啊 ,现在就是没有动态的效果啊,如果我想把整个VS2008工具都灰色掉,中间只出现GIF图怎么搞,hztltgg
    可以告知下嘛,麻烦你告诉我下怎么加分,你们回帖对我有帮助,可我不知知道怎么给你们分啊。。ImageAnimator 类是控件还是????
      

  19.   

    http://msdn.microsoft.com/zh-cn/library/system.drawing.imageanimator.animate.aspx加分在帖子上面第一个按钮,管理菜单
      

  20.   

    可以啊 ,我就是对C#这一块的进程也不是很懂,所以,能避免最好避免啊。。
    能用GIF动态图片代替那就最好了啊。。
      

  21.   

    我觉得艾琳说的不错,做个循环放在哪里,那循环该怎么来搞呢,获取数据的时间是根据导入的工程大小来定的,而且我也不能控制进度,所以,我的循环放在哪里,一开始点击命令后在函数处理哪里加循环???如果把获取报表数据放在循环里面,那也就起不到循环显示动态图片的效果了~~~~~如果循环几下退出来获取报表数据,可一样还是得等啊~~~难啊。pictureBox这个控件支持GIF图片,为何不能显示出动态的效果呢?
      

  22.   

    解决了吗。没的话留你邮箱给你发个demo
      

  23.   

    Change_L
    还没有啊,现在图片只是静态的。谢谢哦
      

  24.   

    做个假的 比较好:
     程序走到代码A:
     ProgressBar.value=50;
     程序走到代码B:
     ProgressBar.value=55;
     程序走到代码C:
     ProgressBar.value=60;
     程序走到代码D:
     ProgressBar.value=80;
     程序走到代码E:
     ProgressBar.value=99; 完成:
      

  25.   

    做个假的 比较好:
     程序走到代码A:
     ProgressBar.value=50;
     程序走到代码B:
     ProgressBar.value=55;
     程序走到代码C:
     ProgressBar.value=60;
     程序走到代码D:
     ProgressBar.value=80;
     程序走到代码E:
     ProgressBar.value=99; 完成:
      

  26.   

    做个假的 比较好:
     程序走到代码A:
     ProgressBar.value=50;
     程序走到代码B:
     ProgressBar.value=55;
     程序走到代码C:
     ProgressBar.value=60;
     程序走到代码D:
     ProgressBar.value=80;
     程序走到代码E:
     ProgressBar.value=99; 完成:
      

  27.   

    50楼太给力了吧,就是接受数据的进度不由我能控制的,获取覆盖率数据时是调用客户接口,根本不知道信息,只能等所以现在做法是只要能显示出GIF动态图片效果就可以达到,我用的pictureBox控件显示出GIF图片但不是动态的,所以网上也查了些资料:
    guangquanzhu 的 C#窗体上怎么显示动态图片如gif方法一(简单):用label,然后设置为背景图片方法二:使用GDI+ 来实现 (很粗略的实现,没有帧间隔
    我添加了一个label控件,怎么设置其背景颜色,代码   
    label1.BackColor = Color.Transparent;设置背景为透明,
    label1.Parent = 这里怎么把GIF图片添加进去!