Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка Windows Forms > Проверка на существование элемента


Автор: vinograd2008 20.5.2011, 11:37
Как проверить существует ли введенный элемент в checkedListBox?

Автор: -Mikle- 20.5.2011, 12:58
Бежишь циклом по списку и сравниваешь введенный элемент с каждым айтемом. Если совпало, значит нашел.

Автор: vinograd2008 20.5.2011, 16:25
Как это сделать? Почему данный код не срабатывает?

Код

                    for (int j = 0; j < checkedListBox15.Items.Count; j++)
                    {
                        if (NewItem == checkedListBox15.GetItemText(j))
                        {
                            MessageBox.Show(NewItem + " уже существует!");
                            return;
                        }
                        else
                        {
                            this.checkedListBox15.Items.Add(NewItem);
                            this.textBox3.Text = "";
                            this.textBox3.Focus();
                        }
                    }

Автор: Экскалупатор 20.5.2011, 16:30
а NewItem это какой тип?
и что значит "не срабатывает"? добавляет одинаковые?

оно кстати и должно добавлять, вот смотри, к примеру у тебя есть такие записи:
один
два
три

а тебе надо добавить четыре, тогда у тебя при каждой итерации по циклу будет добавляться слово четыре и в итоге получиться:
один
два
три
четыре
четыре
четыре

да и от бесконечного цикла тут спасает то значения рано или поздно начинают повторяться...

раздели эти операции, сначала найди(или нет), а потом добавь(или нет)

Автор: vinograd2008 20.5.2011, 16:39
NewItem имеет тип string. 

string NewItem = textBox3.Text;

Оно не добавляет вообще никакие записи. Даже одинаковые. Просто не работает добавление. Мне нужно чтобы проверялось есть ли элемент с заданным NewItem в списке и если есть, то не добавлять как это сделать?

Автор: Экскалупатор 20.5.2011, 16:59
как то так:
Код

                        if (checkedListBox15.FindStringExact(NewItem)== ListBox.NoMatches)
                        {
                         this.checkedListBox15.Items.Add(NewItem);
                            this.textBox3.Text = "";
                            this.textBox3.Focus();
                        }

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)