一次在许多字段上额外禁用属性

时间:2015-03-13 06:02:28

标签: c# xaml isenabled

我有一个包含许多控件的表单。在列表中有一个字段,应禁用所有其他控件,以防止任何进一步的用户操作。

你知道是否有一种简单的方法吗?想要不在所有字段上逐个添加相同的禁用条件(在它们自己的启用逻辑之上)?

1 个答案:

答案 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参数传递,并将新值truefalse)传递给{{1>来调用它每个控件的属性作为第二个参数。

从您的问题中不清楚Enabled是什么,但如果这是一个控件本身在同一个表单中,您将需要记住将其field that should disable all other controls属性设置回{{1}在调用上面的方法之后,否则它也会被禁用。