Beispiel #1
0
 /// <summary>
 /// 消除状态栏上的文字
 /// </summary>
 public static void ClearText()
 {
     if (StatusBarObject != null)
     {
         StatusBarObject.Clear();
     }
 }
Beispiel #2
0
 /// <summary>
 /// 在状态栏上显示文字
 /// </summary>
 /// <param name="msg"></param>
 public static void SetText(string msg)
 {
     if (StatusBarObject != null && !string.IsNullOrEmpty(msg))
     {
         StatusBarObject.SetText(msg);
     }
 }
Beispiel #3
0
 /// <summary>
 /// 停止进度条滚动
 /// </summary>
 public static void StopProcessBar()
 {
     if (StatusBarObject != null)
     {
         StatusBarObject.Progress(ref processBarCookie, 0, "", 0, 0);
         processBarCookie = 0;
     }
 }
Beispiel #4
0
 /// <summary>
 /// 显示进度条
 /// </summary>
 /// <param name="leftCornerText">左下角需要显示的文字</param>
 /// <param name="value">进度条的当前值,不超过最大值</param>
 public static void ShowProcessBar(string leftCornerText, uint value)
 {
     if (StatusBarObject != null)
     {
         lastValue = value;
         if (value <= MaxValue)
         {
             StatusBarObject.Progress(ref processBarCookie, 1, leftCornerText, value, MaxValue);
         }
         else
         {
             StatusBarObject.Progress(ref processBarCookie, 0, "", 0, 0);
         }
     }
 }
Beispiel #5
0
 //状态栏显示处理函数
 private void _updateStatusBarFunc(object _obj)
 {
     if (this.InvokeRequired)
     {
         UpdateStatusBar _updateStatusBar = new UpdateStatusBar(_updateStatusBarFunc);
         this.Invoke(_updateStatusBar, new object[] { _obj });
     }
     else
     {
         StatusBarObject obj = _obj as StatusBarObject;
         if (obj.time == 0)
         {
             toolStripStatusLabel1.Text = "";
         }
         else if (obj.time < 5)
         {
             toolStripStatusLabel1.Text = (obj.time % 2 == 1) ? _statusBarTmpText : "";
         }
         else
         {
             toolStripStatusLabel1.Text = _statusBarTmpText;
         }
     }
 }
Beispiel #6
0
 //开启磁盘监视和状态栏线程
 private void startThread()
 {
     #region thread_for_watchDevices
     watchDevicesChangesThread = new Thread(new ThreadStart(() => {
         while (true)
         {
             Thread.Sleep(500);
             if (closeForm)
             {
                 break;
             }
             DriveInfo[] dis           = DriveInfo.GetDrives();
             HashSet <string> _tmp     = new HashSet <string>();
             List <string> _diff_drv   = new List <string>();
             List <string> _find_files = new List <string>();
             foreach (var di in dis)//获取当前所有盘符
             {
                 _tmp.Add(di.Name);
             }
             foreach (var item in _tmp)//与之前盘符比较,如果有之前不存在的盘符,则包装进行后期访问
             {
                 if (!_drvs.Contains(item))
                 {
                     _diff_drv.Add(item);
                 }
             }
             if (_diff_drv.Count > 0)//这里进行对不同的驱动器进行处理
             {
                 foreach (var item in _diff_drv)
                 {
                     try {
                         foreach (var file in Directory.EnumerateFiles(item, "r*.txt"))
                         {
                             _find_files.Add(file);
                         }
                     }
                     catch (IOException)
                     {
                         Console.WriteLine("Exception on EnumerateFiles:" + item);
                     }
                 }
             }
             if (_drvs.Count != _tmp.Count)//如果比较后相同就不进行赋值操作  ,最拙劣的判断是否变化方法
             {
                 _updateFromFileListFunc(_find_files);
                 _drvs = _tmp;
             }
         }
     }));
     watchDevicesChangesThread.Start();
     #endregion
     #region thread_for_change_statusbar_status
     resetStatusTextThread = new Thread(new ThreadStart(() => {
         StatusBarObject sbo = new StatusBarObject();
         while (true)
         {
             if (closeForm)
             {
                 break;
             }
             Thread.Sleep(FLASH_TIME_INTERVAL);
             if (_isStatusNeedFlash)//如果状态栏需要闪动
             {
                 sbo.time++;
                 _updateStatusBarFunc(sbo);
                 if (sbo.time > 9)
                 {
                     _isStatusNeedFlash = false;
                     sbo.time           = 0;
                     _updateStatusBarFunc(sbo);
                 }
             }
         }
     }));
     resetStatusTextThread.Start();
     #endregion
 }
Beispiel #7
0
 public static void CancelProcessBar()
 {
     StatusBarObject.Progress(ref processBarCookie, 0, "", 0, 0);
 }