使用Application.UseWaitCursor
关闭和启用沙漏鼠标指针是否有任何危险?
答案 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
块中,这样可以确保在抛出应用程序异常的情况下重置游标。