| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 9647 人关注过本帖, 1 人收藏
标题:如何实现:进度条显示加载数据状态
只看楼主 加入收藏
jstzcl007
Rank: 1
等 级:新手上路
帖 子:102
专家分:0
注 册:2008-3-29
收藏
得分:0 
[bo][un]myemail1983[/un] 在 2008-10-9 00:25 的发言:[/bo]

Application.DoEvents();
这句有什么作用,没用过这个控件,看msdn没看明白,高手解释下吧


刷新窗体,实时显示窗体上的内容,加了进度条控件后,label控件容易不显示出来,用上面这句就可以了
2008-10-09 22:05
shmilylee
Rank: 2
来 自:江苏扬州蹩脚小公司
等 级:论坛游民
威 望:2
帖 子:242
专家分:22
注 册:2007-7-6
收藏
得分:0 
一般来说,涉及到数据量比较大的操作的时候会开个单独的线程去处理,这时候显示进度条就成了问题
还好虽然麻烦点,却也不难实现,用事件来实现是比较好的

在处理的线程中定义一个事件
public event EventHandler upLoadEvent;

在执行操作的时候同时去不停地触发事件
upLoadEvent.Invoke(一个object,一个EventArgs的实例);

然后要订阅事件消息
线程所在类 threadClass = new 线程所在类();
threadClass.upLoadEvent += new EventHandler(threadClass_upLoadEvent);

当事件执行的时候就会触发threadClass_upLoadEvent这个方法
但是要操作进度条现在还不行,因为它们不在一个线程里面,直接操作是不安全的
线程间的操作就要用到委托
private delegate void uploadDelegate(int 当前进度的数字);//带参数
//事件触发的方法里面就调用委托
void threadClass_upLoadEvent(object sender, EventArgs e)
{
      int 当前进度的数字= Convert.ToInt32(sender);
      uploadDelegate up = new uploadDelegate(一个方法名称,操作进度条);
      this.Invoke(up, 当前进度的数字);
}
//现在可以操作进度条了
private void 操作进度条(int 当前进度的数字)
{
      ............
}

[[it] 本帖最后由 shmilylee 于 2008-10-10 11:29 编辑 [/it]]
2008-10-10 09:05
gspysky
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-10-10
收藏
得分:0 
用进度条来处理显示效果。不一定要显示进行到百分几的,因为那样会影响效率,系统必定要分配计算时间来处理,所以我们可以用一个进度条,让它来进行循环,例如XP启动,他会让你看到启动到百分几吗?让你有个滚动条的,看上去跟进度的差不多了
2008-10-10 23:29
myemail1983
Rank: 2
来 自:南京
等 级:新手上路
威 望:3
帖 子:256
专家分:0
注 册:2008-7-27
收藏
得分:0 
最好来个具体例子

寻找学习的动力,承接小型程序设计,呵呵,为了激励自己学习下。
虽然做不到无私,但会学着去帮助别人
2008-10-10 23:55
快速回复:如何实现:进度条显示加载数据状态
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.045556 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved