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

Отбор записей в listview

03.02.2018, 22:09. Показов 1581. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет еще раз)
Еще один вопрос- не знаю, как реализовать.
В Listview1 есть 3 колонки
Фирма Размер
mizuno 43
asics 45
adidas 40
mizuno 41
mizuno 47
asics 40
mizuno 50


Модели в первом столбце повторяются. Так вот.
1. Как мне вывести в combobox1 - фирмы отсеяв повторяющиеся значения? то есть что бы в combobox 1 получилось:
mizuno
asics
adidas
2. Как мне при выборе записи в combobox1 - вывести в combobox2 из второго столбца listview все размеры по этой фирме?
то есть если я выбрал в combobox1 mizuno то в combobox2 я должен увидеть - 43, 41, 47, 50

Как это осуществить? заранее спасибо за помощь!!!
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.02.2018, 22:09
Ответы с готовыми решениями:

Отбор записей в listview
Доброго дня всем! Как можно найти значение во 2 столбце listview и вывести в label значение 4 столбца найденой строки? более подробно: ...

Отбор записей из текстового файла в listview
Всем привет! На форме - combobox, listview. ТАк же есть некий текстовый файл с данными формата: Зима|Декабрь|Январь|Февраль ...

Отбор записей в combobox
Доброго всем дня! На форме имеется combobox со списком(список заполняется в коде) ComboBox1.Items.Add("720 Format: .mp4") ...

6
1548 / 1521 / 325
Регистрация: 03.10.2012
Сообщений: 1,551
04.02.2018, 01:14
Лучший ответ Сообщение было отмечено pirat2019 как решение

Решение

pirat2019, Примерно так
VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Public Class Form1
    Dim things As New List(Of Thing)
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
       
        For Each row As ListViewItem In ListView1.Items
            things.Add(New Thing With {.Model = row.SubItems(0).Text, .Value = row.SubItems(1).Text})
        Next
 
        Dim hash As New HashSet(Of String)(From el As Thing In things Select el.Model)
        ComboBox1.DataSource = hash.ToList
    End Sub
 
    Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
        Dim values() As String = (From el As Thing In things Where ComboBox1.SelectedItem = el.Model Select el.Value).ToArray
        ComboBox2.DataSource = values.ToList
    End Sub
End Class
Public Class Thing
    Public Property Model As String
    Public Property Value As String
End Class
Но это не совсем правильно, так как здесь мы заполняем модель данных из ListView, а должно быть все наоборот.
5
8 / 8 / 1
Регистрация: 09.10.2013
Сообщений: 613
05.02.2018, 22:54
MrCrown, а у меня когда добавил данные в listview во втором комбобоксе получилось задвоение этих записей.
то есть на примере pirat2019 покажу.
в таблице listview были записи:
mizuno 43
asics 45
adidas 40
mizuno 41
mizuno 47
asics 40
mizuno 50
ваш код отрабатывает отлично, то есть при выборе записи в combobox1 в combobox2 отображается размер.
если я выбрал mizuno то во втором комбо получил - 43,41,47,50 (здесь все в порядке.) проблема вот в чем встала.
Через текстовые поля (во время выполнения кода) я добавил еще запись в listvew (скажем mizuno | 39)
затем в combobox1 снова выбрал mizuno, но в combobox2 я получил задвоение тех записей, которые были уже загружены, то есть что я получил во 2 комбо: 39,43,43,41,41,47,47,50,50 .
Так вот, как этого можно избежать? не подскажите?
0
1548 / 1521 / 325
Регистрация: 03.10.2012
Сообщений: 1,551
06.02.2018, 10:38
Цитата Сообщение от adb420 Посмотреть сообщение
как этого можно избежать
Это хорошая иллюстрация к тому, что я уже уже говорил
Цитата Сообщение от MrCrown Посмотреть сообщение
Но это не совсем правильно, так как здесь мы заполняем модель данных из ListView, а должно быть все наоборот
Все действия с данными должны происходить в модели данных - в классах, списках и т.д., а в контролах должен отображаться результат.

Добавлено через 3 минуты
Цитата Сообщение от adb420 Посмотреть сообщение
я добавил еще запись в listvew
добавляйте её в List(Of Thing)

Добавлено через 9 минут
В моём коде цикл с 5 по 7 строку - только для примера - смоделировать ситуацию. В рабочем коде его быть не должно.
Вам нужно так выстроить алгоритм, чтобы данные попадали сначала в список, а уже потом в ListView
1
8 / 8 / 1
Регистрация: 09.10.2013
Сообщений: 613
06.02.2018, 17:06
MrCrown, а может как-то отчищать combobox, скажем combobox1.items.clear()? а потом заного загружать? так не выйдет?
0
1548 / 1521 / 325
Регистрация: 03.10.2012
Сообщений: 1,551
07.02.2018, 10:27
adb420, если вы хотите всё-таки использовать мой код в том виде как я его привёл (что, повторюсь, в корне неправильно), то очищайте не комбобокс, а список things.
VB.NET
1
2
3
4
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        things.Clear()
        For Each row As ListViewItem In ListView1.Items
        ' ' '
1
8 / 8 / 1
Регистрация: 09.10.2013
Сообщений: 613
07.02.2018, 16:35
MrCrown, а если данные скажем брать из текстового файла? такое возможно. так же осуществить? и как?:
скажем в текстовом файле записи так: (опять же таки на примере создателя темы)
mizuno|43
asics|45
adidas|40
mizuno|41
mizuno|47
asics|40
mizuno|50
в combobox1 вывести значения отсеяв записи то есть вывести:
mizuno
asics
adidas
а в comobox 2 - размеры по данной записи( выбранной в combobox1)?
не подскажите?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.02.2018, 16:35
Помогаю со студенческими работами здесь

Отбор записей из текстового файла в combobx е
Доброго дня, всем привет. Заинтересовался темой: https://www.cyberforum.ru/vb-net/thread2184367.html Решил создать новую, и не задавать...

ListView. Отбор уникальных значений
Вопрос следующего плана. Есть ListView с пятью колонками. Каким образом можно получить или только уникальные записи или удалить...

Отбор записей BETWEEN
Напишите запрос, который может вывести всех покупателей, чьи города начинаются с буквы, попадающей в диапазон от C до R. SELECT * FROM...

Отбор записей в таблице
Есть форма с привязанной таблицей. В таблице записаны заказы, есть повторные. Нужно, чтобы на форме, при вводе критерия поиска, появлялась...

Подзапросы на отбор записей
Всем доброго времени суток! Прошу помощи с написанием запроса на выборку данных по условиям. Застопорилась и не понимаю куда дальше...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru