Если у вас есть три списка, выполните следующие действия. Этот код очистит выбор любого другого списка, когда конкретный список изменит выбор. Вы можете очистить выбор списка, установив его SelectedIndex = -1
.
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (listBox1.SelectedIndex > -1)
{
listBox2.SelectedIndex = -1;
listBox3.SelectedIndex = -1;
}
}
private void listBox2_SelectedIndexChanged(object sender, EventArgs e)
{
if (listBox2.SelectedIndex > -1)
{
listBox1.SelectedIndex = -1;
listBox3.SelectedIndex = -1;
}
}
private void listBox3_SelectedIndexChanged(object sender, EventArgs e)
{
if (listBox3.SelectedIndex > -1)
{
listBox1.SelectedIndex = -1;
listBox2.SelectedIndex = -1;
}
}
if (listBox#.SelectedIndex > -1)
необходим, потому что установка SelectedIndex
окна списка с помощью кода также вызовет событие SelectedIndexChanged
, которое в противном случае заставило бы все поля списка очищаться при каждом выборе одного из них.
EDIT:
В качестве альтернативы, если в форме есть только три списка, вы можете объединить их в один метод. Свяжите все три списка с этим методом события:
private void listBox_SelectedIndexChanged(object sender, EventArgs e)
{
ListBox thisListBox = sender as ListBox;
if (thisListBox == null || thisListBox.SelectedIndex == 0)
{
return;
}
foreach (ListBox loopListBox in this.Controls)
{
if (thisListBox != loopListBox)
{
loopListBox.SelectedIndex = -1;
}
}
}