В моей программе с UI в WinForm. Я установил курсор на песочные часы незадолго до для запуска метода в ThreadPool.
Мой код в потоке UI для установки курсора похож на это:
Application.UseWaitCursor = true;
Когда метод закончен, я возвращаюсь к Потоку UI для установки курсора на нормальный случай.
Application.UseWaitCursor = false;
Моей проблемой является курсор, остаются к Песочным часам, пока я не перемещаю мышь. Это является немного тревожащим, если пользователь ожидает на конце действия, не перемещая мышь.
Кто-либо может помочь мне?
Jérôme
Я не могу воспроизвести это поведение? Он отлично работает для меня.
Одна вещь, на которую следует обратить внимание, если вы используете подход Control.Cursor = Cursors.WaitCursor
, он обычно используется следующим образом:
this.Cursor = Cursors.WaitCursor
Что могло бы появиться однако для нормальной работы this
относится к форме, поэтому, если пользователь перемещает мышь к другому элементу управления, например, TextBox, мышь не показывает курсор ожидания.
Это может запутать пользователей. Или может вызвать некоторые проблемы, если пользователь продолжает работать над чем-то другим, когда Приложение занято другой работой.
Еще один способ:
Cursor.Current = Cursors.WaitCursor;
Когда закончите, просто измените курсор обратно:
Cursor.Current = Cursors.Default;