powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Combobox и поиск значений из списка
25 сообщений из 28, страница 1 из 2
Combobox и поиск значений из списка
    #36321965
Настенька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем добрый день.

Есть ComboBox со свойствами: AutoCompleteMode - SuggestAppend, AutoCompleteSource - ListItems.

Т.е. он ищет по первой букве и выдает список найденных значений.

Вопрос: как сделать так, чтобы он искал не по первой букве, а по любому вхождению слова.
желательно обойтись малой кровью и не изобретать велосипед.
Еще нюанс - в Combo забито 2000 значений, т.е. если делать поиск по всем значениям - будет долго. а надо чтобы было быстро.
Всем заранее спасибо за ответы.
...
Рейтинг: 0 / 0
Combobox и поиск значений из списка
    #36324989
Настенька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вот, пошел третий день. и никакого ответа. ну помогите пож-та, кто знает.
...
Рейтинг: 0 / 0
Combobox и поиск значений из списка
    #36325233
Фотография Worobjoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Combobox и поиск значений из списка
    #36325256
Настенька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотрела два примера - не подходят. просто стало интересно, и никто этим вопросом видимо до меня не интересовался. думала, вопрос банальный, но не тут то было.

может, кто-то еще что подскажет? буду очень благодарна.
...
Рейтинг: 0 / 0
Combobox и поиск значений из списка
    #36327400
Настенька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну пожалуйста, кто знает, ответьте, очень нужно. :-(.
...
Рейтинг: 0 / 0
Combobox и поиск значений из списка
    #36327513
AlexM-VB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Настенька, посмотрите здесь:
http://www.codeproject.com/KB/cpp/autocomplete_combobox.aspx
http://www.codeproject.com/KB/cpp/VbNetAutocomplete.aspx

Или такой вариант - использовать компоненты DevExpress. Там есть компонент ComboBoxEdit, который умеет делать, то что Вам надо. Вот, почитайте - http://www.devexpress.com/Products/NET/Controls/WinForms/Editors/editors/ComboBoxEdit.xml

Кстати, набор компонентов, куда входит ComboBoxEdit, бесплатен. Вы можете его загрузить с сайта разработчика и использовать в своих приложениях. Вот ссылка на компоненты - http://www.devexpress.com/Products/Free/WebRegistration60/
...
Рейтинг: 0 / 0
Combobox и поиск значений из списка
    #36327559
Настенька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex-M, спасибо за ссылки. но там autocomplete - это не то. это не поиск по любому вхождению.

вопрос насчет devexpress, я так поняла, что это не бесплатные компоненты, а trial version. и весит полный пакет 300 метров. если у вас есть возможность, скиньте пож-та сюда только ComboBoxEdit. я думаю, он как dll идет. а то у меня нет столько трафика все это закачивать.
...
Рейтинг: 0 / 0
Combobox и поиск значений из списка
    #36327752
AlexM-VB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НастенькаAlex-M, спасибо за ссылки. но там autocomplete - это не то. это не поиск по любому вхождению.

вопрос насчет devexpress, я так поняла, что это не бесплатные компоненты, а trial version. и весит полный пакет 300 метров. если у вас есть возможность, скиньте пож-та сюда только ComboBoxEdit. я думаю, он как dll идет. а то у меня нет столько трафика все это закачивать.

Весь пакет компонентов DevExpress конечно же платный, но по ссылке, которую я дал выше, 60 компонентов XtraEditors (где и есть ComboBoxEdit) можно использовать совершенно бесплатно. Конечно же, Вам придется скачать весь дистрибутив компонентов. А, насчет того, чтобы скинуть Вам отдельную DLL, то она у вас так работать не будет.
...
Рейтинг: 0 / 0
Combobox и поиск значений из списка
    #36327764
Настенька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex, жалко, но не могу я весь пакет никак скачать. а может ты знаешь, как в стандратном combo это сделать? может, написать новый компонент на основе стандартного combo. я просто не знаю как это делать.
...
Рейтинг: 0 / 0
Combobox и поиск значений из списка
    #36327842
AlexM-VB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НастенькаAlex, жалко, но не могу я весь пакет никак скачать. а может ты знаешь, как в стандратном combo это сделать? может, написать новый компонент на основе стандартного combo. я просто не знаю как это делать.

Настенька, глупости ты говоришь, не жалко мне.
Скинь мне свой e-mail. Попробую скинуть компонентик.
...
Рейтинг: 0 / 0
Combobox и поиск значений из списка
    #36327862
Настенька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скажи пож-та, сколько он весит?
...
Рейтинг: 0 / 0
Combobox и поиск значений из списка
    #36327914
AlexM-VB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НастенькаСкажи пож-та, сколько он весит?

6 Мб.
...
Рейтинг: 0 / 0
Combobox и поиск значений из списка
    #36327944
Настенька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex, скинула тебе на мыло. Жду...
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Combobox и поиск значений из списка
    #38005859
grrh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так всё-таки, есть в природе какой-ть комбо, у которого autocomplete может работать не как StartsWith а как Contains?

В девэкспрессе такую фичу я вижу только у веб-компонента и у wpf-комбо. У "просто виндового" такой функциональности не вижу.
Или можно это как-то самому реализовать?
вижу здесь человек всё перепробовал и написал компонент сам с нуля, кодов не выложил.

Может кто чем помочь или куда направить?
...
Рейтинг: 0 / 0
Combobox и поиск значений из списка
    #38006071
pyroman69
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
grrhТак всё-таки, есть в природе какой-ть комбо, у которого autocomplete может работать не как StartsWith а как Contains?

В девэкспрессе такую фичу я вижу только у веб-компонента и у wpf-комбо. У "просто виндового" такой функциональности не вижу.
Или можно это как-то самому реализовать?
вижу здесь человек всё перепробовал и написал компонент сам с нуля, кодов не выложил.

Может кто чем помочь или куда направить?
Есть, у них
когда-то юзал авотзаполнение.
Как вариант можно так:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
private List<string> source = new List<string>()
    {
        "fsadfsadf",
        "fasdfa3rtwetwe",
        "twerkljdflkj",
        "jehrgjkwhe",
        "reiouhe;tg435234",
        "28495uytg4",
        "34y8-tgiy2",
        "43tguj54rjhng-289",
        "2-487g24gkl;j",
        "134f7rhfvsdjk;",
        "247vyhpufdsh"
    };

public MainForm()
{
    InitializeComponent();
            
    comboBox.DataSource = source;
    comboBox.DropDownStyle = ComboBoxStyle.DropDown;    
    comboBox.KeyUp += new KeyEventHandler(comboBox_KeyUp);
}

private void comboBox_KeyUp(object sender, KeyEventArgs e)
{
    string text = comboBox.Text;
    if (!string.IsNullOrEmpty(comboBox.Text) && source.Count(s => s.Contains(comboBox.Text)) > 0)
        comboBox.DataSource = source.Where(s => s.Contains(comboBox.Text)).ToList();
    if (string.IsNullOrEmpty(comboBox.Text))
        comboBox.DataSource = source;
    comboBox.Text = text;
}


...
Рейтинг: 0 / 0
Combobox и поиск значений из списка
    #38006254
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
pyroman69Как вариант можно так:
Текст функции явно не полон. Нет сброса и редактирования искомого значения.
...
Рейтинг: 0 / 0
Combobox и поиск значений из списка
    #38006431
Фотография _=ДОБРЫНЯ=_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может скинете полный текст? Самому такое нужно.
...
Рейтинг: 0 / 0
Combobox и поиск значений из списка
    #38006554
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
_=ДОБРЫНЯ=_может скинете полный текст? Самому такое нужно.


Нужно добавить что-то вроде

int ek = e.KeyValue;
if (!((ek == 32) || (ek >= 48 && ek <= 57) || (ek >= 65 && ek <= 90)))
{

ToFindText = "";

}

Курсорные клавиши сбрасывают искомый текст.
Это кусок не для комбобокса, но можно адаптировать
...
Рейтинг: 0 / 0
Combobox и поиск значений из списка
    #38006889
Фотография _=ДОБРЫНЯ=_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне интересно. Для того чтоб было автозаполнение на совпадение при вводе текста в комбик - необходимо полностью загрузить весь справочник (например) в этот комбобокс? или это делается как-то подругому?
...
Рейтинг: 0 / 0
Combobox и поиск значений из списка
    #38007761
grrh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pyroman69

А что такое comboBox.DataSource? я полагал, что это список для поиска и результатом твоего кода будет "сужение списка" ручным фильтром, но поиск-то будет опять же по StartsWith. Я ошибаюсь?
...
Рейтинг: 0 / 0
Combobox и поиск значений из списка
    #38007768
grrh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ой, не заметил.. думал AutoCompleteCustomSource
а datasource - так вообще мне ещё и содержимое таблицы поменяет.
...
Рейтинг: 0 / 0
Combobox и поиск значений из списка
    #38007789
grrh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
grrhой, не заметил.. думал AutoCompleteCustomSource
а datasource - так вообще мне ещё и содержимое таблицы поменяет.

ой опять всё с утра перепутал датасорс комбо и таблицы
вопрос - как твой кусок кода будет работать-то? он же фильтрует сами элементы, а поиск-то по ним для автокомплита будет всё тем же- по StartsWith?
и это можно и в обычном комбо сделать вроде.
...
Рейтинг: 0 / 0
Combobox и поиск значений из списка
    #38008144
pyroman69
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
grrhgrrhой, не заметил.. думал AutoCompleteCustomSource
а datasource - так вообще мне ещё и содержимое таблицы поменяет.

ой опять всё с утра перепутал датасорс комбо и таблицы
вопрос - как твой кусок кода будет работать-то? он же фильтрует сами элементы, а поиск-то по ним для автокомплита будет всё тем же- по StartsWith?
и это можно и в обычном комбо сделать вроде.
это не рабочий вариант, точнее юзать его можно, но я кинул как идею. Есть список значений комбо. Вводим текст в комбо, вытаскиваем из списка все значения содержащие вводимый текст
source.Where(s => s.Contains(comboBox.Text)).ToList();
если удалить текст в комбо, то выводится весь список. Поиск идет не по StartsWidth, а по Contains
...
Рейтинг: 0 / 0
Combobox и поиск значений из списка
    #38008170
grrh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
как я понимаю :
source.where(...) - фильтрует по Contains
а потом по этому списку идёт autocomplete, который работает через StartsWith

например, есть у тебя список :

АББЦ
ББЦА
ЦБАБ

пользователь вводит "БЦ"
у тебя в списке элементов удаляется 3й(не подходит по фильтру)
автокомплит же по 2м оставшимся элементам не подсветит ни один из них - поскольку с БЦ ни один из них не начинается, а работает он по StartsWith. Поправь меня плз, где я ошибаюсь.
...
Рейтинг: 0 / 0
Combobox и поиск значений из списка
    #38008182
grrh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
или ты предлагаешь сам autocomplete убрать и просто фильтровать содержимое комбо?
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Combobox и поиск значений из списка
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]