如果选择了其他combobox,如何禁用comboBox(C#)

无论如何,如果不同的combobox中有某种文本或值,则禁用combobox。 我尝试了几件事似乎无法让它发挥作用。

以下是示例

组合框

使用combobox1的SelectedValueChanged事件检查所选值。 根据它禁用或启用combobox2。

private void combobox1_SelectedValueChanged(object sender, Eventargs e) { if (combobox1.SelectedValue == myDisableValue) combobox2.Enabled = false; else combobox2.Enabled = true; } 

您可以处理两个combobox的SelectedValueChanged事件,如果任何组合具有您所需的值,则禁用另一个combobox

类似于此的东西,只设置你想要的任何属性,或者不清除它,或者其他什么。 (测试组合不是数据绑定)

  public partial class Form1 : Form { bool fireEvents = true; public Form1() { InitializeComponent(); } private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { if (fireEvents) doCheck(sender, e); } private void comboBox2_SelectedIndexChanged(object sender, EventArgs e) { if (fireEvents) doCheck(sender, e); } private void doCheck(object sender, EventArgs e) { fireEvents = false; // because we don't have a way to cancel event bubbling if (sender == comboBox1) { comboBox2.SelectedIndex = -1; } else if (sender == comboBox2) { comboBox1.SelectedIndex = -1; } fireEvents = true; } }