如果选择了其他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; } }