在我的主要表单中,我运行这个:
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().为什么会这样?它与线程有关吗?
这一行:
f.Enabled = false;
Run Code Online (Sandbox Code Playgroud)
应该
c.Enabled = false;
Run Code Online (Sandbox Code Playgroud)
问题是因为您不小心禁用了整个表单.