方法不起作用

The*_*per 1 c# winforms

在我的主要表单中,我运行这个:

this.disableForm();
btnAbort.Enabled = true;
Run Code Online (Sandbox Code Playgroud)

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

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

    f.Cursor = Cursors.WaitCursor;
}
Run Code Online (Sandbox Code Playgroud)

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

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

Ror*_*san 7

这一行:

f.Enabled = false;
Run Code Online (Sandbox Code Playgroud)

应该

c.Enabled = false;
Run Code Online (Sandbox Code Playgroud)

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

  • 单字母变量名称可能会引起混淆. (5认同)