I have an application that takes a couple of seconds to run. Is it possible to make the mouse with the busy icon while the app is processing?
4 Answers
Use Cursor.WaitCursor property.
You can use:
Cursor.Current = Cursors.WaitCursor;
and as long as there is some processing going on in a
WinForms
application, the cursor stays in theWaitCursor
state.You can as well use your custom designed cursors:
Cursor.Current = new Cursor("C:\\Cursors\\MyWait.cur");
source: http://bytes.com/topic/c-sharp/answers/238623-how-change-mouse-cursor-busy-state

- 2,809
- 5
- 28
- 34
-
2The `UseWaitCursor` property is more reliable. – SLaks Mar 25 '10 at 15:19
-
The `UseWaitCursor` property is not at all more reliable. For tasks that momentarily block the UI thread, the cursor won't change until after the task has completed and returned control to Windows. – Jonathan Wood Apr 07 '14 at 05:06
You need to set the form's UseWaitCursor
property to true
. (And remember to set it to false
again afterwords, preferably in a finally
block)
You can also set Application.UseWaitCursor
to true
to apply it to every form.

- 868,454
- 176
- 1,908
- 1,964
I have no option to add my answer as a comment to SLaks answer, so i post it as an answer
In order to force application to set cursor to wait cursor at once, you have to call for Application.DoEvents() method after setting Application.UseWaitCursor, otherwise it might be changed after the lengthy process has been completed
Application.UseWaitCursor=true;
Application.DoEvents();

- 2,458
- 3
- 40
- 65
Cursor.Current = Cursors.WaitCursor;
You will need a reference to System.Windows.Forms to change the cursor.

- 5,795
- 2
- 29
- 32