Снять выделения со всех ListBox - C#
Формулировка задачи:
Имеются динамические ListBox'ы, создаю для них динамический обработчик выделения, и мне нужно что бы, когда выделяю элемент в одном ListBox'е, в остальных выделение снимались. Т.е. в настоящее время всегда был только выделенный ListBox. Ниже моя реализация, но при выделении в другом ListBox'e очищаются все, и вновь выделенный тоже.
private void lb_SelectedIndexChanged(object sender, EventArgs e) { ListBox currentList = (ListBox)sender; MessageBox.Show(currentList.Name.ToString()); //MessageBox.Show(currentList.GetType().ToString()); //ListBox cl = new ListBox(); foreach (Control cnt in tlp.Controls) { ListBox tb = cnt as ListBox; if (tb != currentList) {//MessageBox.Show(tb.Name.ToString()); try { tb.ClearSelected(); } catch { } } } }
Решение задачи: «Снять выделения со всех ListBox»
textual
Листинг программы
private void listBox1_SelectedIndexChanged(object sender, EventArgs e) { ListBox listBox = sender as ListBox; if (!listBox.Focused) return; foreach (Control ctrl in this.Controls) { if (ctrl is ListBox) { ListBox box = ctrl as ListBox; if (box != listBox) { box.ClearSelected(); } } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д