应该使用Application.UseWaitCursor吗?

时间:2012-02-29 05:42:50

标签: c# .net mouse-pointer

使用Application.UseWaitCursor关闭和启用沙漏鼠标指针是否有任何危险?

2 个答案:

答案 0 :(得分:6)

“危险”是不恢复光标。

您可以使用try…finally块来执行此操作,以确保即使抛出异常也可以恢复游标,或者通过将此功能包装在实现IDisposable的类中来清除语法。您可以改为使用using块。

  public class WaitCursor : IDisposable
  {
    public WaitCursor()
    {
      Application.UseWaitCursor = true;
    }

    public void Dispose()
    {
      Application.UseWaitCursor = false;
    }
  }

用法:

  using (new WaitCursor())
  {

    // do stuff - busy, busy, busy

  } // here the cursor will be restored no matter what happened

答案 1 :(得分:2)

如果应用程序将被锁定,直到长时间运行操作完成,则使用Application.UseWaitCursor是正确的。但是,如果您有多个表单只锁定一个表单,最好在表单上设置Cursor属性。

您还应该记住将Application.UseWaitCursor = false;放在finally块中,这样可以确保在抛出应用程序异常的情况下重置游标。