Обратите внимание, что Cursor
является свойством формы.Выбранный курсор отображается, когда мышь перемещается над этой формой.Но поскольку при запуске конструктора форма еще не видна, курсор ожидания не может отображаться.
Рассмотрите возможность перемещения долго выполняющихся элементов в обработчик событий Shown
:
private void Form1_Shown(object sender, EventArgs e)
{
Cursor.Current = Cursors.WaitCursor;
try {
Thread.Sleep(2000); // Do long running stuff here
} finally {
Cursor.Current = Cursors.Default;
}
}
Вместо этого вытакже можно установить курсор ожидания в форме, открывающей эту новую форму.
Cursor.Current = Cursors.WaitCursor;
try {
var frm = new BankApp(); // Constructor is running here.
frm.Show();
} finally {
Cursor.Current = Cursors.Default;
}
Если ваша форма не является основной формой, вы можете использовать следующий код для установки курсора ожидания для всех открытых форм.Это также должно работать в конструкторе:
Application.UseWaitCursor = true;
try {
Thread.Sleep(2000); // Do long running stuff here
} finally {
Application.UseWaitCursor = false;
}
Try-finally гарантирует, что курсор по умолчанию также будет сброшен, если что-то пойдет не так.