码迷,mamicode.com
首页 > 其他好文 > 详细

LoadingBar

时间:2014-08-15 01:17:46      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   os   io   文件   for   ar   

      在系统中,如果在进行耗时的操作,一般都会通知UI告之用户操作正在进行。一般情况下可以设置Cursor来设置鼠标指标的图形来通知UI,但是这样看起来不会特别明显,所以显示一个比较明显的Loading Bar加载条是普遍的选择。

      耗时操作分为很多种,根据是否能得到完成的百分比分为"不可预知时间操作"(比如调用一个WEB服务,可能根据网络善状况的情况时间又不一样)和"可预知时间操作"(比如下载文件,可以根据已下载的字节数,来预知文件完成的百分比和大概的一个总的耗费时间)

      针对"不可预知时间操作"的情况,因为无知得知完成的百分比,所以只能显示一个Loading Bar告之用户操作正在进行,但是没法告之显示的百分比。由于ProgressBar不太美观而且不可能满足所有的要求,所以新建一个loadingView加载一个loading的图片,通知UI忙碌的时候即显示loadingView,操作完成则关闭loadingView。主页面代码如下

     

 1  public partial class Form1 : Form
 2     {
 3         private Thread t1 = null;
 4 
 5         public Form1()
 6         {
 7             InitializeComponent();
 8         }
 9 
10         private void btn_Login_Click(object sender, EventArgs e)
11         {
12             //模拟耗时操作1
13             IsBusy(true);
14             Thread.Sleep(1000);
15             IsBusy(false);
16             //模拟耗时操作2
17             IsBusy(true);
18             Thread.Sleep(2000);
19             IsBusy(false);
20             //模拟耗时操作3
21             IsBusy(true);
22             Thread.Sleep(3000);
23             IsBusy(false);
24         }
25 
26         /// <summary>
27         /// 设置UI是否处于忙碌状态
28         /// </summary>
29         /// <param name="isBusy"></param>
30         private void IsBusy(bool isBusy)
31         {
32           
33             if (isBusy)
34             {
35                 this.Cursor = Cursors.WaitCursor;
36 
37                 //1.用线程来实现 
38                 t1 = new Thread(new ThreadStart(new Action(() =>
39                 {
40                     LoadingView loading = new LoadingView();
41                     loading.ShowDialog();
42                 })));
43                 t1.Start();
44 
45               
46             }
47             else
48             {
49                 this.Cursor = Cursors.Default;
50 
51                 //1.用线程来实现 
52                 t1.Abort();
53            
54             }
55         }
56     }

    LoadingView只需要设定窗口大小与LoadingPic一样大即可,然后设定窗口的AutoSize = true,AutoSizeMode = GrowAndShrink.然后隐藏窗口标题和边框,使LoadingView看起来好像就是一个图片一样。

LoadingBar,布布扣,bubuko.com

LoadingBar

标签:style   blog   color   os   io   文件   for   ar   

原文地址:http://www.cnblogs.com/JustYong/p/3913731.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!