Winforms combobox сравнить - PullRequest
0 голосов
/ 26 июля 2010

Я использую два поля со списком в моем приложении на C # .net для Windows, например, combobox1 и combobox2 (два списка со схожими элементами), если я выбираю какие-либо элементы в combobox1, мне нужно скрыть это значение в combobox2.

Ответы [ 4 ]

1 голос
/ 26 июля 2010

Самое простое решение - обработать SelectedItemChanged в первом поле со списком и заново сгенерировать список элементов для второго поля со списком, чтобы исключить выбранный элемент в первом.Это должно работать хорошо, если у вас нет большого количества предметов.Дополнительный граничный случай для рассмотрения:

  • Если вы позже измените выбор в первом поле со списком, чтобы он соответствовал тому, который был выбран во втором поле со списком, вы можете очистить и сбросить второе поле со списком.Вы можете обработать этот случай в том же обработчике событий SelectedItemChanged в первом поле со списком.
0 голосов
/ 03 января 2013

Вы можете использовать Contains, чтобы проверить, есть ли у одного другой, и выполнить цикл для проверки всех элементов.

 for (int i = 0; i < ListBox1.Items.Count; i++)
            {
                if (ListBox2.Items.Contains(ListBox1.Items[i]))
                {
                        ListBox1.Items.RemoveAt(i);
                        i--;
                }
            }
0 голосов
/ 26 июля 2010

Самый простой, но, возможно, не самый чистый:

Просто заполняйте combobox2 на основе того, чего нет в combobox1 каждый раз, когда элемент выбирается в combobox1.

0 голосов
/ 26 июля 2010

Полагаю, вы хотите, чтобы во втором комбинированном ящике был выбран тот же индекс, что и в первом.

Итак, к событию SelectedIndexChanged из combobox1 добавьте этот код:

combobox2.SelectedIndex = combobox1.SelectedIndex;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...