Проблема песочных часов в приложении WinForm

В моей программе с UI в WinForm. Я установил курсор на песочные часы незадолго до для запуска метода в ThreadPool.

Мой код в потоке UI для установки курсора похож на это:

Application.UseWaitCursor = true;

Когда метод закончен, я возвращаюсь к Потоку UI для установки курсора на нормальный случай.

Application.UseWaitCursor = false;

Моей проблемой является курсор, остаются к Песочным часам, пока я не перемещаю мышь. Это является немного тревожащим, если пользователь ожидает на конце действия, не перемещая мышь.

Кто-либо может помочь мне?

Jérôme

13
задан RedPaladin 28 June 2010 в 07:22
поделиться

3 ответа

Я не могу воспроизвести это поведение? Он отлично работает для меня.

Одна вещь, на которую следует обратить внимание, если вы используете подход Control.Cursor = Cursors.WaitCursor , он обычно используется следующим образом:

this.Cursor = Cursors.WaitCursor

Что могло бы появиться однако для нормальной работы this относится к форме, поэтому, если пользователь перемещает мышь к другому элементу управления, например, TextBox, мышь не показывает курсор ожидания.

Это может запутать пользователей. Или может вызвать некоторые проблемы, если пользователь продолжает работать над чем-то другим, когда Приложение занято другой работой.

6
ответ дан 1 December 2019 в 19:58
поделиться

Еще один способ:

Cursor.Current = Cursors.WaitCursor;

Когда закончите, просто измените курсор обратно:

Cursor.Current = Cursors.Default;
12
ответ дан 1 December 2019 в 19:58
поделиться

Установить курсор вручную. Вот что я делаю.

0
ответ дан 1 December 2019 в 19:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: