powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Дубли в Combobox
6 сообщений из 6, страница 1 из 1
Дубли в Combobox
    #37053099
Фотография Andrey13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте.

Есть комбобокс,в результате Combo.AddItem появляется множество дублирующихся значеий. Есть ли в VB Combo свойство MatchFound, или что то подобное.

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

Как избавиться от дублей?

Спаибо.
...
Рейтинг: 0 / 0
Дубли в Combobox
    #37053111
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Andrey13
> Как избавиться от дублей?


А откуда появляются данные для комбобокса?
В общем случае я сделал бы коллекцию и добавлял бы в неё, если добавилось, значит дублей нет и можно добавлять в комбо,
если не добавилось в коллекцию значит есть дубли и добавлять нечего. Но это крайний случай и данные желательно
фильтровать заранее :)

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Дубли в Combobox
    #37053177
Фотография michael R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можешь использовать
CB_FINDSTRING константа
SendMessage функция API

для поиска нужного слова в comboBox

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Private Const CB_FINDSTRING = &H14C
Private Const CB_FINDSTRINGEXACT = &H158
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Any) As Long


Private Sub Form_Load()
Dim strFindString As String
strFindString = "Car"

CB = SendMessage(Combo1.hwnd, CB_FINDSTRING, - 1 , ByVal strFindString)

If CB <> - 1  Then
    MsgBox "Found index " + CStr(CB)
End If
End Sub

на форме нужен контроль Combo1
...
Рейтинг: 0 / 0
Дубли в Combobox
    #37053188
TpaBka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь ГорбоносА откуда появляются данные для комбобокса?

Правильный вопрос
...
Рейтинг: 0 / 0
Дубли в Combobox
    #37053352
Фотография Андрей159
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я в подобных случаях для combo1.AddItem делаю отдельную функцию типа
Код: plaintext
1.
2.
Private Function FN_Cmb_Add(Txt As String) As Boolean
'Проверка на дублирование и добавление, где FN_Cmb_Add = True если добавлено
End Function


Andrey13программа будет подвисать в геометрической прогрессии1. Если Вы запутались невероятно как с DoEvents-ами, тогда используйте флаги
2. Если значений очень очень много в combo1 и много еще чего нужно добавить, то процес приускорить вряд-ли получиться. Я приускорил но пришлось строить свою базу данных. Лично я делал велосипед, делал базу данных с функцией добавления, где добавление имело свой алгоритм, а в список Combo или List загружал только готовые значение. У меня в базе были такие поля:
код, другие нужные поля, поле Deleted, Поле Goto to которое при добавлении записи формировало число-переход на следующую запись которая начиналась на эту ж букву. Тоесть цыкл работал не 1,2,3 а по поле Goto to Тоесть я выиграл по скорости где-то в 10-20раз. Так же и устроена сортировка.
...
Рейтинг: 0 / 0
Дубли в Combobox
    #37055466
Фотография Andrey13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем, за участие. Прошу прощения долго не писал т.к. не было возможности.
Решил при помощи примера michael R.
Все работает я пока счастлив. )))
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Дубли в Combobox
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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