c#combobox互斥
时间: 2023-09-26 07:08:01 浏览: 163
如果你希望在多个 ComboBox 控件之间实现互斥,使得只有一个 ComboBox 能够被选择,可以尝试以下方法:
1. 在窗体的 Load 事件中,为每个 ComboBox 控件绑定一个相同的事件处理函数。
2. 在事件处理函数中,获取当前被选中的 ComboBox 控件,并将其它 ComboBox 控件的 SelectedIndex 属性设置为 -1,以取消它们的选择状态。
以下是一个简单的示例代码:
```
private void Form1_Load(object sender, EventArgs e)
{
comboBox1.SelectedIndexChanged += new EventHandler(comboBox_SelectedIndexChanged);
comboBox2.SelectedIndexChanged += new EventHandler(comboBox_SelectedIndexChanged);
comboBox3.SelectedIndexChanged += new EventHandler(comboBox_SelectedIndexChanged);
}
private void comboBox_SelectedIndexChanged(object sender, EventArgs e)
{
ComboBox currentComboBox = (ComboBox)sender;
foreach (Control control in this.Controls)
{
if (control is ComboBox && control != currentComboBox)
{
((ComboBox)control).SelectedIndex = -1;
}
}
}
```
在上述代码中,我们为每个 ComboBox 控件绑定了相同的事件处理函数 comboBox_SelectedIndexChanged,在该函数中,使用 foreach 循环遍历窗体中的所有控件,将除当前 ComboBox 控件外的其它 ComboBox 控件的 SelectedIndex 属性设置为 -1,以取消它们的选择状态。
阅读全文