Вы должны обрабатывать вещи по-другому ... не должно быть причины отключать форму, чтобы предотвратить взаимодействие с пользователем. Используйте диалоговое окно с индикатором выполнения или сообщением, которое позволяет пользователю узнать, что происходит. Не создавайте впечатление, что программа висит или падает. Это ужасный путь. Подумайте о перспективах пользователей и о том, что разочаровало вас, когда вы используете программы других.
Однако, это работает для меня:
this.Enabled = false;
this.UseWaitCursor = true;
Очевидно, что это только отображается, когда курсор находится над формой.
Вот весь тестовый код:
namespace WindowsFormsApplication1
{
partial class Form1
{
private System.ComponentModel.IContainer components = null;
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
private void InitializeComponent()
{
this.button1 = new System.Windows.Forms.Button();
this.SuspendLayout();
this.button1.Location = new System.Drawing.Point(163, 110);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(75, 23);
this.button1.TabIndex = 0;
this.button1.Text = "button1";
this.button1.UseVisualStyleBackColor = true;
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(284, 262);
this.Controls.Add(this.button1);
this.Name = "Form1";
this.Text = "Form1";
this.ResumeLayout(false);
this.Enabled = false;
this.UseWaitCursor = true;
}
private System.Windows.Forms.Button button1;
}
}
Есть ли хорошая причина, почему вы хотите, чтобы отключить форму? Я не думаю, что это хорошая практика, так как она перестанет получать сообщения, чтобы обработчики событий не срабатывали! Я бы рассмотрел редизайн. Например, отключите все элементы управления (простой цикл foreach). – etaiso
Возможный дубликат [Cursor.Current vs. this.Cursor] (http://stackoverflow.com/questions/302663/cursor-current-vs-this-cursor) –
Он отлично работает в отключенной форме. Думаю, некоторым пользователям SO просто не помогают. –