Можно также сделать это этот путь:
select columnproperty(object_id('mytable'),'mycolumn','IsIdentity')
Возвраты 1, если это - идентификационные данные, 0 если нет.
Вы можете использовать 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;
, чтобы гарантировать, что песочные часы действительно отображаются.
Мой подход заключался бы в выполнении всех вычислений в фоновом работнике.
Затем измените курсор следующим образом:
this.Cursor = Cursors.Wait;
И в событии завершения потока восстановите курсор:
this.Cursor = Cursors.Default;
Обратите внимание, что это также можно сделать для определенных элементов управления, поэтому курсор будет в виде песочных часов только тогда, когда мышь находится над ними.