Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/21: Рейтинг темы: голосов - 21, средняя оценка - 4.57
Заблокирован

Можно ли использовать фильтр записей в ListBox

23.09.2012, 15:50. Показов 4398. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем заглянувшим, здрям!

Есть код:

Visual Basic
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 Sub Text1_Change()
    strFind = UCase(Text1.Text)
    List1.Clear
    
    For intResult = 0 To List2.ListCount - 1
        intSearchResult = InStr(UCase(List2.List(intResult)), strFind)
        If intSearchResult > 0 Then List1.AddItem List2.List(intResult)
    Next intResult
End Sub
 
Private Sub Form_Load()
    Text1.Text = ""
    With List2
        .AddItem "ÌÏ-Êîì ïðàâäà"
        .AddItem "Tanya"
        .AddItem "Shannon"
        .AddItem "Ìîñêîâñêàÿ ïðàâäà"
        .AddItem "Ìîñêîâñêèé êîìñîìîëåö"
        .AddItem "Ìîñêîâñêèå íîâîñòè"
        .AddItem "Johnny"
        .AddItem "Mike"
        .AddItem "Derek"
        .AddItem "Scotty"
        .AddItem "ÌÏ-Ñîâ Ðîñ"
        .AddItem "Scott"
        .AddItem "Tyna"
        .AddItem "Diana"
        .AddItem "Chris"
        .AddItem "Stanley"
        .AddItem "Kamal"
        .AddItem "ÌÏ-Êóðÿä"
    End With
End Sub
Там используется 2 ListBox и 1 текстовое поле, при вводе символа в текстовое поле, найденное в List2 загружается в List1.

Внимание вопрос! Как можно обойтись без List1, а работать только с List2 в нем же искать, в него же и сортировать поиск?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.09.2012, 15:50
Ответы с готовыми решениями:

Фильтр записей в ListBox
Делаю программу для библиотеки для простого управления списком читателей, книг, задолженностей и все в этом духе (научный проект) По...

Выборка записей столбца БД в ListBox в зависимости от выбора в первом ListBox
Ребят, хелп. Нужно запилить такую штуку, а хз как. Есть 2 лист бокса когда в первом выбирают определенный элемент со списка во второй...

Занесение записей в listBox из файла и изменение записей в файле
Как сделать, что бы при запуске приложения, информация из конкретного файла сразу отображалась в listBoxе, а не выбирая файл через...

7
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
23.09.2012, 16:47
Visual Basic
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
34
35
36
37
38
Private Names()
 
Private Sub Text1_Change()
    Call Fill_TextBox
End Sub
 
Private Sub Form_Load()
    Names = Array( _
    "МП-Ком правда", _
    "Tanya", _
    "Shannon", _
    "Московская правда", _
    "Московский комсомолец", _
    "Московские новости", _
    "Johnny", _
    "Mike", _
    "Derek", _
    "Scotty", _
    "МП-Сов Рос", _
    "Scott", _
    "Tyna", _
    "Diana", _
    "Chris", _
    "Stanley", _
    "Kamal", _
    "МП-Куряд")
    'Text1_Change будет инициирована самостоятельно
    Text1.Text = vbNullString
End Sub
 
Private Sub Fill_TextBox()
    Dim S$(), i&
    S = Filter(Names, Text1.Text, , vbTextCompare)
    List1.Clear
    For i = 0 To UBound(S)
        List1.AddItem S(i)
    Next
End Sub
2
 Аватар для Kogb
367 / 128 / 28
Регистрация: 17.07.2011
Сообщений: 253
Записей в блоге: 1
23.09.2012, 16:50
Лучший ответ Сообщение было отмечено как решение

Решение

Тогда будет только 1 результат поиска. Если устраивает, то:
3 строку удаляешь, 7 меняешь на:
Visual Basic
1
If intSearchResult > 0 Then List2.Text = List2.List(intResult)
Можно поставить sorted=true свойствах List2 для сортировки по алфавиту.
3
 Аватар для Апострофф
9908 / 3928 / 742
Регистрация: 11.10.2011
Сообщений: 5,908
23.09.2012, 19:48
Visual Basic
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
34
35
36
37
38
39
40
41
42
43
44
45
Option Compare Text
Dim h
 
Private Sub Text1_Change()
Dim f&, t$
List2.Height = h * (List2.ListCount + 1)
    If Text1.Text <> "" Then
        For intresult = 0 To List2.ListCount - 1
            intsearchresult = InStr(List2.List(intresult), Text1.Text)
            If intsearchresult > 0 Then
                t = List2.List(f)
                List2.List(f) = List2.List(intresult)
                List2.List(intresult) = t
                f = f + 1
                List2.Height = h * (f + 1)
            End If
        Next intresult
    End If
End Sub
 
Private Sub Form_Load()
    With List2
        .AddItem "МП-Ком правда"
        .AddItem "Tanya"
        .AddItem "Shannon"
        .AddItem "Московская правда"
        .AddItem "Московский комсомолец"
        .AddItem "Московские новости"
        .AddItem "Johnny"
        .AddItem "Mike"
        .AddItem "Derek"
        .AddItem "Scotty"
        .AddItem "МП-Сов Рос"
        .AddItem "Scott"
        .AddItem "Tyna"
        .AddItem "Diana"
        .AddItem "Chris"
        .AddItem "Stanley"
        .AddItem "Kamal"
        .AddItem "МП-Куряд"
    End With
Set Me.Font = List2.Font
h = Me.TextHeight("A")
Text1.Text = ""
End Sub
1
1703 / 190 / 19
Регистрация: 20.11.2011
Сообщений: 281
01.10.2012, 08:58
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от Dragokas Посмотреть сообщение
Visual Basic
1
2
3
4
5
6
7
8
Private Sub Fill_TextBox()
 Dim S$(), i&
 S = Filter(Names, Text1.Text, , vbTextCompare)
 List1.Clear
 For i = 0 To UBound(S)
 List1.AddItem S(i)
 Next
End Sub
Вместо этого лучше:
Visual Basic
1
2
3
Private Sub Text1_Change()
    List1.List = Filter(n, Text1, , 1)
End Sub
И Names - зарезервированное слово Экса. Лучше не применять в именах переменных. Могут быть проблемы.
2
5 / 5 / 4
Регистрация: 24.03.2010
Сообщений: 241
Записей в блоге: 1
18.10.2012, 20:40
Всем привет!

Возник вопрос поиска точного значения из ListBox. В ниже представленном коде выполняется условие типа Like, то есть совпадение. А нужно было чтобы ТОЧНОЕ совпадение значение из Text1(0) со значением в List3.

Visual Basic
1
2
3
4
Dim entryNum As Long
Dim txtToFind As String
txtToFind = Text1(0).Text
entryNum = SendMessageByString(List3.hwnd, LB_SELECTSTRING, 0, txtToFind)
Как это можно реализовать?
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
19.10.2012, 00:33
Совпадение с учетом регистра букв
Visual Basic
1
2
3
With List1
    If .List(.ListIndex) = Text1(0).Text Then MsgBox "Совпадение с учетом регистра букв"
End With
Совпадение без учета регистра букв
Visual Basic
1
2
3
With List1
    If StrComp(.List(.ListIndex), Text1(0).Text, vbTextCompare) = 0 Then MsgBox "Совпадение без учета регистра букв"
End With
1
Заблокирован
19.10.2012, 08:18  [ТС]
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
For i = 1 To List1.ListCount
List1.ListIndex = List1.ListIndex + 1
    With List1
        If .List(.ListIndex) = Text1.Text Then
            MsgBox "Ñîâïàäåíèå ñ ó÷åòîì ðåãèñòðà áóêâ"
                List1.ListIndex = 0
                List1.Text = ""
        End If
        If StrComp(.List(.ListIndex), Text1.Text, vbTextCompare) = 0 Then
            MsgBox "Ñîâïàäåíèå áåç ó÷åòà ðåãèñòðà áóêâ"
                List1.ListIndex = 0
                List1.Text = ""
        End If
    End With
Next i
Ну и мои пять копеек !

Dragokas, у тебя пока в листе не выделишь запись поиск не работает, я сделал по циклу на кол-во записей в List1.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.10.2012, 08:18
Помогаю со студенческими работами здесь

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

Фильтр ListBox и DB
Приветствую, читеры и крутые программисты))) Создаю фильтр. На ней так же расположил кнопки BitBtn, Edit, Label и один ListBox,...

При выделении строки в ListBox отображать ее в Edit, где можно отредактировать и заменить в ListBox-е
Подскажите пожалуйста как зделать задачку:При выделении строки в поле ListBox даная строка отображалась в Edit, где можна его...

Фильтр записей
Добрый вечер, у меня есть страница, на странице 3 drop down списка, с помощью которых нужно отфильтровать записи 1. Категория 2....

Фильтр записей БД
Добрый день, есть форма для поиска записей из БД с мульти чекбоксами( запрос должен выводить записи, где встречаются значения чекбоксов)....


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru