根据另一个 ComboBox C# 中的更改 ComboBox 启用状态

Change ComboBox Enabled State based on the in another ComboBox C#

我有两个组合框,第一个是 CmdGuarantor,第二个是 CmdGuarantorClassCmdGuarantor 有 7 个项目的列表:

NSSF Private MOH Army IS GS UNHCRCmdGuranatorClass 的项目列表中有 1st Class 2nd Class 3rd Class

我想在 CmdGuarator.SelectedItem.ToString() == "Private" || CmdGuarator.SelectedItem.ToString() == "UNCHR"

时禁用 CmdGuarantorClass

我怎样才能做到这一点?

P.S.: 我尝试使用此方法

CmdGuarantorClass ComboBox 上使用 EnableChanged 事件
    private void ComboBox2_EnabledChanged(object sender, EventArgs e)
    {
        if (CmdGuarantor.SelectedItem.ToString() == "Private" || CmdGuarantor.SelectedItem.ToString() == "UNCHR")
        {
            CmdGuarantorClass.Enabled = false;
        }
        else CmdGuarantorClass.Enabled = true;
    }

但运气不好。

提前谢谢你。

您应该监听 SelectedIndexChanged 事件,而不是 EnabledChanged 事件。仅当 Enabled 属性 更改时才会引发 EnabledChanged。

假设 datagridview 标签是错误的,并且您正在谈论两个不同的 winform ComboBoxes...那么...我建议您连接第一个组合框 SelectedIndexChanged事件。

当用户更改组合框中的选择时将触发此事件。在那种情况下,您可以检查组合框值,然后根据需要设置其他组合框 Enabled 属性。像……

private void comboGuarantor_SelectedIndexChanged(object sender, EventArgs e) {
  if (comboGuarantor.SelectedItem.ToString() == "Private" ||
      comboGuarantor.SelectedItem.ToString() == "UNCHR") {
    comboGuarantorClass.SelectedIndex = -1;
    comboGuarantorClass.Enabled = false;
  }
  else {
    comboGuarantorClass.Enabled = true;
  }
}