.net WinForms-活动指示器

.net WinForms-活动指示器,.net,winforms,user-interface,controls,.net,Winforms,User Interface,Controls,在WinForms应用程序中,我希望提供循环后台过程正在进行的视觉反馈(这不是由用户启动或阻止他们使用UI的事情) 编辑-它一直在循环进行。用户不需要知道迭代何时开始或结束 我在想一些小的,方形的,循环的动画。类似于Mac/iPhone应用程序中经常使用的分段“微调器” 是否有类似想法的内置WinForms控件?如果没有,那么最好的方法是什么?使用自定义开发的线程模型或 让后台线程使用委托处理程序定期将事件发回主GUI线程,考虑线程安全,或者如果使用BackgroundWorker,则使用该事

在WinForms应用程序中,我希望提供循环后台过程正在进行的视觉反馈(这不是由用户启动或阻止他们使用UI的事情)

编辑-它一直在循环进行。用户不需要知道迭代何时开始或结束

我在想一些小的,方形的,循环的动画。类似于Mac/iPhone应用程序中经常使用的分段“微调器”


是否有类似想法的内置WinForms控件?如果没有,那么最好的方法是什么?

使用自定义开发的线程模型或

让后台线程使用委托处理程序定期将事件发回主GUI线程,考虑线程安全,或者如果使用BackgroundWorker,则使用该事件。

只需在窗体上放置一个事件,并确保未阻止UI线程:


而不是写这个

public void DoWork()
{
  try
  {
     this.Cursor = Cursors.WaitCursor;
     DoSomeBigThing();
     . . . .
  }
  catch()
  {
      . . . ..
  }
  finally
  {
      . . . .
      this.Cursor = Cursors.Default;
  }
}
  • 使用一些免费工具(Google或Bing)创建自己的鼠标光标(.cur文件)
  • 使用鼠标光标并将其设置为自己创建的光标

    游标myCursor=新游标(“myColCursor.cur”)


  • 使用等待光标怎么样?可以将动画放置在窗体上吗?它几乎一直处于这种状态(本质上是确认用户正在显示实时/自动刷新的数据),因此我不想更改鼠标光标。当所述进程运行时,您甚至可以在后台进程中使用代理隐藏/显示动画gif…这似乎是最简单的解决方案