Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/193: Рейтинг темы: голосов - 193, средняя оценка - 4.88
4 / 4 / 1
Регистрация: 10.03.2010
Сообщений: 35

Живой поиск в comboBox

11.04.2011, 23:16. Показов 40661. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Написал простенький поиск в комбобоксе но при вводе нового символа курсор ввода перемещается назад ( Как это исправить?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
        private void comboBox1_TextChanged_1(object sender, EventArgs e)
        {
 
            comboBox1.Items.Clear();
 
            for (int i = 0; i < _dt.Rows.Count; i++)
            {
                int c = _dt.Rows[i][0].ToString().IndexOf(comboBox1.Text);
 
                if (c >= 0)
                {
                    comboBox1.Items.Add(_dt.Rows[i][0].ToString());
 
                }
            }
            
        }
 
        private void comboBox1_PreviewKeyDown_1(object sender, PreviewKeyDownEventArgs e)
        {
            comboBox1.DroppedDown = true;
        }
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.04.2011, 23:16
Ответы с готовыми решениями:

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

Живой поиск. Как выделить фон буквы или набора букв в строке checkedListBox
Здравствуйте,товарищи! Решил организовать живой поиск в checkedListBox (а-ля listBox), но столкнулся с проблемой: как выделить фон буквы...

Живой поиск в ComboBox из БД SQLite
Добрый день перерыл уже кучу информации ничего не вышло. Как мне произвести живой поиск данных в ComboBox, которые загружены из БД. ...

8
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
12.04.2011, 01:38
Лучший ответ Сообщение было отмечено как решение

Решение

World, ну и бред же ты написал
1) зачем каждый раз перетирать список и заполнять комбик с нуля?
2) как я понимаю _dt это объект DataTable. Тогда код совсем превращается в ужас. Ведь для заполнения с DataTable есть свойство DataSource.
3) непонятно, зачем тебе это нужно?

А теперь, как это должно выгдлядеть:
C#
1
2
3
4
5
6
7
8
int index;
        //где-то в коде
        comboBox1.DataSourse=_dt;//этого достаточно для полного заполнения комбика
 
        private void comboBox1_TextChanged_1(object sender, EventArgs e)
        {            
             index = comboBox1.FindString(comboBox1.Text);//нахождение индекса 1-го совпадения с вводимым значением
        }
Этот вариант годится, если тебе нужно найти индекс какого-то элемента для дльнейшего использования.
Если же все это нужно для фильтрования значений в списке в зависимости от вводимого значения, то все еще проще:
C#
1
2
3
comboBox1.DataSourse=_dt;
comboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
comboBox1.AutoCompleteSource = AutoCompleteSource.ListItems;
После настройки этих свойств автозаполнение работает без всяких поисков
7
12.04.2011, 09:21

Не по теме:

Цитата Сообщение от nio Посмотреть сообщение
World, ну и бред же ты написал
я вчера хотел написать что-то подобное и предложить свой вариант, но потом подумал: вдруг там какая серьезная задумка и я еще слишком юн, чтобы ее осилить :)

1
 Аватар для _Vladimir_
57 / 55 / 10
Регистрация: 27.07.2010
Сообщений: 279
21.07.2011, 13:41
Цитата Сообщение от nio Посмотреть сообщение
После настройки этих свойств автозаполнение работает без всяких поисков
это работает, но поиск не совсем полноценный, т.к. нет в нем поиска по символосочетанию внутри строки.
Сам сейчас думаю как проще реализовать поиск по "любому" символосочетанию
0
389 / 304 / 67
Регистрация: 10.07.2010
Сообщений: 802
21.07.2011, 13:55
уж не знаю как там проще не проще это вопрос индивидуальный. Можно с регулярными, а можно с Contains.
C#
1
2
string s = "23rr";
s.Contains("23");
1
 Аватар для umnick_kh
311 / 249 / 44
Регистрация: 06.12.2010
Сообщений: 527
21.07.2011, 16:36
World, вот тут Поиск по списку эта тема обсуждалась-переобсуждалась, берите код и переделывайте если надо.
0
21.07.2011, 16:59

Не по теме:

Цитата Сообщение от umnick_kh Посмотреть сообщение
берите код и переделывайте если надо.
Судя по тому, что тема заглохла уже 3 месяца назад, свой ответ ТС получил....

0
21.07.2011, 17:05

Не по теме:

nio, упс, не заметил. Глянул только на то, что последнее сообщение - сегодня.

0
 Аватар для Kupri4
1 / 1 / 0
Регистрация: 10.08.2015
Сообщений: 8
25.07.2018, 10:06
Здравствуйте, поиск в combobox реализован с помощью события KeyPress:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
private void comboBox_KeyPress(object sender, KeyPressEventArgs e)
        {
            ((ComboBox)(sender)).DroppedDown = true;
            if ((char.IsControl(e.KeyChar)))
                return;
            string Str = ((ComboBox)(sender)).Text.Substring(0, ((ComboBox)(sender)).SelectionStart) + e.KeyChar;
            int Index = ((ComboBox)(sender)).FindStringExact(Str);
            if (Index == -1)
                Index = ((ComboBox)(sender)).FindString(Str);
            ((ComboBox)sender).SelectedIndex = Index;
            ((ComboBox)(sender)).SelectionStart = Str.Length;
            ((ComboBox)(sender)).SelectionLength = ((ComboBox)(sender)).Text.Length - ((ComboBox)(sender)).SelectionStart;
            e.Handled = true;
        }
и всё бы хорошо и как надо, за исключением одного момента с выбранным индексом... Допустим, я начинаю вводить какой-то текст, осуществляется поиск, если нажать Enter или клик мышкой по найденному элементу в списке, то все хорошо, но если элемент найден, и нажать мышкой вне combobox - список закрывается, текст найденного элемента остается, а индекс = -1(как видно из выше написанного кода, индекс я меняю программно и по идеи он должен оставаться)

как видоизменить код, чтоб при нажатии мышкой за пределами списка из combobox индекс присвоился адекватно???
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.07.2018, 10:06
Помогаю со студенческими работами здесь

Живой поиск по вложению в combobox, загруженный из БД
Здравствуйте! Уже достаточно долго не могу решить данный вопрос. Поиск по форуму не привел к желаемым практическим результатам. ...

"Живой" поиск в ComboBox
Доброе время суток! Есть ComboBox, который заполняется из массива Massiv. При работе можно выбрать значение из списка или ввести новое....

Живой поиск по datagridview
Добрый вечер есть обычный поиск по datagridvie Который выводит данные после нажатия кнопки, как сделать живой поиск

Живой поиск по элементам коллекции
Доброго времени суток, форумчане! Очень нужна помощь. Может кто сталкивался или делал или может в сети кто встречал... В общем...

Возможно ли произвести Живой поиск/Автозаполнение списка ComboBox
Дорогие гуру обращаюсь к Вам за советом по 2 вопросам: 1. В Accese есть событие для combobox &quot;not in list&quot; вызывающие...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru