2009-07-07 63 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”);