C# 启用/禁用组合框值上的控件

C# 启用/禁用组合框值上的控件,c#,winforms,combobox,C#,Winforms,Combobox,我有一行组合框,其值应在操作员选择框中选择某个选项时启用/禁用。问题是代码禁用了面板中的所有控件,表单必须重新加载到所述控件。当选择组合框选择“无”时,我希望它禁用除第二个组合框和复选框之外的所有控件。 非常感谢您对代码的任何帮助 private void OperatorSelect_SelectedIndexChanged(object sender, EventArgs e) { bool isEnabled = (OperatorSele

我有一行组合框,其值应在操作员选择框中选择某个选项时启用/禁用。问题是代码禁用了面板中的所有控件,表单必须重新加载到所述控件。当选择组合框选择“无”时,我希望它禁用除第二个组合框和复选框之外的所有控件。 非常感谢您对代码的任何帮助

private void OperatorSelect_SelectedIndexChanged(object sender, EventArgs e)
    {
        bool isEnabled = 
            (OperatorSelect.SelectedItem.ToString() != "(None)");
        foreach (Control cb in this.Controls)
        {
            cb.Enabled = !isEnabled;

        }
        this.comboBoxToStillShow = !isEnabled;
        this.CheckboxToStillShow = !isEnabled;

    }     

目前所有的控件都被禁用了,我需要其他两个控件的帮助才能继续启用,其余的都被禁用。谢谢

看起来您的
组合框ToStillShow
复选框ToStillShow
应该一直处于启用状态,所以只需在循环中跳过它们:

private void OperatorSelect_SelectedIndexChanged(object sender, EventArgs e)
{
    bool isEnabled = 
        (OperatorSelect.SelectedItem.ToString() != "(None)");
    foreach (Control cb in this.Controls)
    { 
        if(cb == comboBoxToStillShow || cb == CheckboxToStillShow) continue;
        cb.Enabled = !isEnabled;
    }        
}

您说过,还有两个控件仍处于启用状态,因此,您应该使用
this.comboBoxToStillShow=isEnabled