WinForms - 活动指标

时间:2009-07-07 10:56:23

标签: .net winforms user-interface controls

在WinForms应用程序中,我想提供一个循环后台程序正在进行的视觉反馈(它不是由用户启动或阻止他们使用UI)

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

我正在考虑某种小型,方形,循环动画。类似于经常在Mac / iPhone应用程序中使用的分段“微调器”。

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

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

3 个答案:

答案 0 :(得分:23)

只需在表单上删除animated GIF,并确保您没有阻止UI线程:

alt text

答案 1 :(得分:2)

而不是写这个

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

    光标myCursor =新光标(“myCoolCursor.cur”);

答案 2 :(得分:1)

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

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