如果不同的组合框中包含某种文本或值,则无论如何都要禁用组合框。我尝试了几件事似乎无法让它发挥作用。
以下是示例
答案 0 :(得分:8)
使用combobox1的SelectedValueChanged事件检查所选值。根据它禁用或启用combobox2。
private void combobox1_SelectedValueChanged(object sender, Eventargs e)
{
if (combobox1.SelectedValue == myDisableValue)
combobox2.Enabled = false;
else
combobox2.Enabled = true;
}
答案 1 :(得分:1)
您可以处理两个组合框的SelectedValueChanged事件,如果任何组合具有您所需的值,则禁用另一个
答案 2 :(得分:0)
答案 3 :(得分:0)
类似于此的东西,只设置你想要的任何属性,或者不清除它,或者其他什么。 (测试组合不是数据绑定)
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;
}
}