2009-07-07 102 views
2

在WinForms應用程序,我想提供視覺反饋一個循環後臺程序正在進行中(這是不是由用戶或使用UI塊他們發起)的WinForms - 活動指示燈

編輯 - 它一直在持續,循環。用戶不需要知道迭代何時開始或結束。

我在想一些小的方形循環動畫。像Mac/iPhone應用程序中經常使用的分段「微調器」。

spinner http://img12.imageshack.us/img12/4402/spinner.png

是否有一個內置的WinForms控制是類似的想法?如果不是,那麼最好的方法是什麼?

+1

如何使用等待光標? – 2009-07-07 11:00:37

+0

可以將該動畫放置在表單上嗎?它幾乎會一直處於這種狀態(實質上確認用戶正在顯示實時/自動刷新的數據),所以我不想更改鼠標光標。 – xyz 2009-07-07 11:11:09

回答

1

使用定製開發的線程模型或BackgroundWorker

讓後臺線程定期使用委託處理程序將事件回發到主GUI線程,考慮線程安全性或使用ProgressChanged事件(如果使用的是BackgroundWorker)。

2

而不是寫這個

public void DoWork() 
{ 
    try 
    { 
    this.Cursor = Cursors.WaitCursor; 
    DoSomeBigThing(); 
    . . . . 
    } 
    catch() 
    { 
     . . . .. 
    } 
    finally 
    { 
     . . . . 
     this.Cursor = Cursors.Default; 
    } 
} 
  1. 創建自己的鼠標光標( .cur文件)與一些免費工具(谷歌或必應)
  2. 使用AutoWaitCursor並將鼠標光標設置爲您自己創建的光標

    光標myCursor = new Cursor(「myCoolCursor.cur」);