Я использую два поля со списком в моем приложении на C # .net для Windows, например, combobox1 и combobox2 (два списка со схожими элементами), если я выбираю какие-либо элементы в combobox1, мне нужно скрыть это значение в combobox2.
Самое простое решение - обработать SelectedItemChanged в первом поле со списком и заново сгенерировать список элементов для второго поля со списком, чтобы исключить выбранный элемент в первом.Это должно работать хорошо, если у вас нет большого количества предметов.Дополнительный граничный случай для рассмотрения:
SelectedItemChanged
Вы можете использовать Contains, чтобы проверить, есть ли у одного другой, и выполнить цикл для проверки всех элементов.
for (int i = 0; i < ListBox1.Items.Count; i++) { if (ListBox2.Items.Contains(ListBox1.Items[i])) { ListBox1.Items.RemoveAt(i); i--; } }
Самый простой, но, возможно, не самый чистый:
Просто заполняйте combobox2 на основе того, чего нет в combobox1 каждый раз, когда элемент выбирается в combobox1.
Полагаю, вы хотите, чтобы во втором комбинированном ящике был выбран тот же индекс, что и в первом.
Итак, к событию SelectedIndexChanged из combobox1 добавьте этот код:
SelectedIndexChanged
combobox1
combobox2.SelectedIndex = combobox1.SelectedIndex;