一次在多个字段上额外禁用 属性
Extra disablement property on many fields at once
我有一个包含许多控件的表单。在列表中有一个 字段应该禁用所有其他控件 以防止任何进一步的用户操作。
你知道是否有简单的方法来做到这一点?不想在所有字段上一一添加相同的禁用条件(在它们自己的启用之上)逻辑)?
没有代码示例(没关系 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
)传递给 Enabled
属性 每个控件作为第二个参数。
从你的问题中不清楚 field that should disable all other controls
是什么,但如果它本身就是一个相同形式的控件,你需要记住设置它的 Enabled
属性调用上述方法后立即返回true
,否则它也会被禁用。
我有一个包含许多控件的表单。在列表中有一个 字段应该禁用所有其他控件 以防止任何进一步的用户操作。
你知道是否有简单的方法来做到这一点?不想在所有字段上一一添加相同的禁用条件(在它们自己的启用之上)逻辑)?
没有代码示例(没关系 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
)传递给 Enabled
属性 每个控件作为第二个参数。
从你的问题中不清楚 field that should disable all other controls
是什么,但如果它本身就是一个相同形式的控件,你需要记住设置它的 Enabled
属性调用上述方法后立即返回true
,否则它也会被禁用。