1

在我的主要形式中,我正在运行这个:

this.disableForm();
btnAbort.Enabled = true;

disableForm 是我的程序中 Form 的扩展方法,定义如下:

public static void disableForm(this Form f)
{
    foreach (Control c in f.Controls)
    {
        f.Enabled = false;
    }

    f.Cursor = Cursors.WaitCursor;
}

问题是下一个命令btnAbort.Enabled = true;没有做任何事情。

如果我将代码直接放在方法中而不是调用disableForm(). 为什么会这样?它与线程有关吗?

4

2 回答 2

7

这一行:

f.Enabled = false;

应该

c.Enabled = false;

问题是因为您不小心禁用了整个表单。

于 2012-04-13T08:59:10.507 回答
2
public static void disableForm(this Form f)
    {
        foreach (Control c in f.Controls)
        {
            //f.Enabled = false;
              c.Enabled = false;
         }

        f.Cursor = Cursors.WaitCursor;
    }
于 2012-04-13T09:02:58.487 回答