我有一个包含许多控件的表单。在列表中有一个字段,应禁用所有其他控件,以防止任何进一步的用户操作。
你知道是否有一种简单的方法吗?想要不在所有字段上逐个添加相同的禁用条件(在它们自己的启用逻辑之上)?
答案 0 :(得分:1)
没有代码示例(从不介意a good, minimal, complete one),无法提供具体建议。但是您可以枚举表单中的所有控件,当然,这样做时您可以为每个Enabled
设置false
标记。
这可能看起来像这样:
void SetEnabledForAllControls(ControlCollection controls, bool value)
{
foreach (Control control in controls)
{
control.Enabled = value;
SetEnabledForAllControls(control.Controls, value);
}
}
您可以通过将表单的Form.Controls
值作为controls
参数传递,并将新值true
或false
)传递给{{1>来调用它每个控件的属性作为第二个参数。
从您的问题中不清楚Enabled
是什么,但如果这是一个控件本身在同一个表单中,您将需要记住将其field that should disable all other controls
属性设置回{{1}在调用上面的方法之后,否则它也会被禁用。