Как я могу заставить курсор обратиться к курсору ожидания?

Можно также сделать это этот путь:

select columnproperty(object_id('mytable'),'mycolumn','IsIdentity')

Возвраты 1, если это - идентификационные данные, 0 если нет.

243
задан Henk Holterman 14 October 2009 в 09:13
поделиться

2 ответа

Вы можете использовать Cursor.Current .

// Set cursor as hourglass
Cursor.Current = Cursors.WaitCursor;

// Execute your time-intensive hashing code here...

// Set cursor as default arrow
Cursor.Current = Cursors.Default;

Однако, если операция хеширования действительно длинна (MSDN определяет это как более чем 2- 7 секунд), вам, вероятно, следует использовать индикатор визуальной обратной связи, отличный от курсора, чтобы уведомить пользователя о ходе выполнения. Более подробный набор рекомендаций можно найти в этой статье .

Изменить:
Как указал @Am, вам может потребоваться вызвать Application.DoEvents (); после Cursor.Current = Cursors.WaitCursor; , чтобы гарантировать, что песочные часы действительно отображаются.

424
ответ дан 23 November 2019 в 03:09
поделиться

Мой подход заключался бы в выполнении всех вычислений в фоновом работнике.

Затем измените курсор следующим образом:

this.Cursor = Cursors.Wait;

И в событии завершения потока восстановите курсор:

this.Cursor = Cursors.Default;

Обратите внимание, что это также можно сделать для определенных элементов управления, поэтому курсор будет в виде песочных часов только тогда, когда мышь находится над ними.

19
ответ дан 23 November 2019 в 03:09
поделиться
Другие вопросы по тегам:

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