I am using StatusBar messages to inform the user of progress during a long piece of processing. My messages were not being displayed, except if a message box was also created.
The suggestion of MathiasWestin works well. Tested Arc10.3.1 Desktop with VB.Net
The code is of the form
My.ArcMap.Application.StatusBar.Message(0) = EditorMessage
Application.DoEvents()
Note that the ArcMap application and the Application are different.
I also tried using system.threading.thread.sleep to add a 100msec delay. This did not work, longer times would then become noticible by users.
Using Application.DoEvents also seems to help when changing mouse cursors.
The ESRI.FrameWork.MouseCursor mouse cursor is defined:
Dim pMouseCursor As MouseCursor = New MouseCursor '
I have found that the mouse cursor reverts to the standard pointer after geoprocessing jobs. Setting it again to a wait cursor using:
pMouseCursor.SetCursor(2) ' 2 is wait cursor
sometimes did not work.
Adding a DoEvents made the switching of the mouse cursor more reliable.