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

ListView добавление подэлементов

31.05.2016, 11:43. Показов 8985. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
1. ListView с 3-мя колонками ("№п.п", "Имя файла", "Путь");
2. List с 200 записями полного пути к файлу;
3.
VB.NET
1
2
3
4
For i = 1 To List.Count
ListView1.Items.Add(i) '- заносится № п.п, все отлично...
ListView1.Items(i).Subitems.Add(list(i)) ' сюда хотя бы полный путь со списка поставить, никак...
Next
- как это правильно делается?

Добавлено через 21 минуту
VB.NET
1
2
3
For i = 1 To List.Count
ListView1.Items.Add(i).Subitems.Add(list(i - 1)) ' попробовал так, заносится..., как быть с остальными стобцами?
Next
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.05.2016, 11:43
Ответы с готовыми решениями:

Добавление картинок в ListView
Можно ли в одну из строчек ListView добавить небольшое изображение? если да, то как это сделать?

Данные String. Операции с перестановками подэлементов.
Здравствуйте! Нужно задать два массива "имя" и "фамилия"(ввод фамилий и имен вручную) для составления списка из 5 человек. Имена в...

Добавление данных в ListView
Здравствуйте, не могу найти решение проблемы, добавляю записи в listview, а они отображаются только после переворота экрана. Как это решить?

8
1548 / 1525 / 325
Регистрация: 03.10.2012
Сообщений: 1,551
31.05.2016, 12:55
Если логика приложения позволяет, все поля в ListView можно сформировать разом
VB.NET
1
2
Dim sItem As New ListViewItem({"111", "222", "333"})
        ListView1.Items.Add(sItem)
для трех колонок
1
 Аватар для mostApi
8 / 6 / 0
Регистрация: 15.05.2015
Сообщений: 350
31.05.2016, 13:32  [ТС]
MrCrown, получается через массив?
У меня изначально данные не известны, они вычисляются постепенно...
Каждый раз перезаписывать массив, и с него обновлять список ListView1?

Добавлено через 5 минут
MrCrown, может есть альтернатива удобнее чем ListView?
0
1548 / 1525 / 325
Регистрация: 03.10.2012
Сообщений: 1,551
31.05.2016, 13:59
Можно и так
VB.NET
1
2
3
ListView1.Items(0).SubItems(0).Text = "111"
ListView1.Items(0).SubItems(1).Text = "222"
ListView1.Items(0).SubItems(2).Text = "333"
1
Модератор
Эксперт .NET
 Аватар для Yury Komar
4360 / 3430 / 512
Регистрация: 27.01.2014
Сообщений: 6,258
05.06.2016, 11:50
может так проще? с суловием того, что LIST - это массив String элементов (индекс его кстати начинается с НУЛЯ):
VB.NET
1
2
3
For i = 1 To List.Count
ListView1.Items.Add(i).Subitems.Add(List(i-1))
Next
Добавлено через 4 минуты
а с остальными столбцами быть так же, добавьте в эту строку еще одну конструкцию .Subitems.Add(List2(i-1))

Добавлено через 1 минуту
и тогда всего одной строчкой кода создастся элемент в ЛистВью с тремя колонками.
0
Лень — мое второе и
 Аватар для Orlangur
3228 / 2416 / 687
Регистрация: 28.11.2014
Сообщений: 3,601
Записей в блоге: 3
05.06.2016, 12:56
Если я правильно понял, то вот, слепил что-то похожее
Вложения
Тип файла: zip listview_3columns.zip (17.8 Кб, 69 просмотров)
0
Модератор
Эксперт .NET
 Аватар для Yury Komar
4360 / 3430 / 512
Регистрация: 27.01.2014
Сообщений: 6,258
05.06.2016, 14:13
Orlangur1991, я бы не использовал цикл Do...Loop, много исключений получается. Ведь вы получаете список файлов\папок через GetFiles и таому подобное, что уже возвращает кольчество файлов и вы точно знаете конец этого списка, так может быть через For...Next прогнать цикл?

По поводу Subitems выше постом я ошибся, тут надо использовать AddRange, тогда красиво и в одну строчку.

Вот чуток подправил вашу функцию поиска, ну и еще в некоторых местах:
VB.NET
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
46
47
48
49
50
51
52
Public Class Form1
 
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        ListView1.View = View.Details
        ListView1.GridLines = True
        ListView1.Columns.Add("#", 50)
        ListView1.Columns.Add("Имя файла", 150)
        ListView1.Columns.Add("Путь", 200)
        ListView1.FullRowSelect = True
    End Sub
 
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim SFD As New FolderBrowserDialog ' создаем новый экземпляр  FolderBrowserDialog с именем SFD
        If SFD.ShowDialog = Windows.Forms.DialogResult.OK Then ' если была выбрана папка в диалоговом окне
            TextBox1.Text = SFD.SelectedPath ' присваиваем textbox1 выбранный путь
        End If
    End Sub
 
    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        If TextBox1.Text <> "" Then
            If ListView1.Items.Count <> 0 Then
                If MsgBox("Добавить в текущий список?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
                    Search(TextBox1.Text, "*.*", True)
                Else
                    ListView1.Items.Clear()
                    Search(TextBox1.Text, "*.*", True)
                End If
            Else
                Search(TextBox1.Text, "*.*", True)
            End If
        Else
            MsgBox("Не выбрана папка")
        End If
    End Sub
 
    Private Sub Search(ByVal fold As String, ByVal mask As String, ByVal Recur As Boolean)
        Try
            For Each File1 As String In IO.Directory.GetFiles(fold, mask)
                ListView1.Items.Add(ListView1.Items.Count + 1).SubItems.AddRange(New String() {IO.Path.GetFileName(File1), File1})
            Next
 
            If Recur Then 'Если нужен поиск и в подпапках
                For Each Folder As String In IO.Directory.GetDirectories(fold, mask)
                    Search(Folder, mask, Recur)
                Next
            End If
 
        Catch ex As Exception
            MsgBox(ex.Message.ToString)
        End Try
    End Sub
End Class
P.S. не выкладывайте проект, а покажите код, т.к. ваш проект в новой студии, и у многих может стоит старая и не открывается(как у меня, 2010).
Вложения
Тип файла: zip Поиск файлов (Пример).zip (11.9 Кб, 38 просмотров)
1
Модератор
Эксперт .NET
 Аватар для Yury Komar
4360 / 3430 / 512
Регистрация: 27.01.2014
Сообщений: 6,258
05.06.2016, 14:26
как это правильно делается?
VB.NET
1
ListView1.Items.Add("Колонка-1").SubItems.AddRange(New String() {"Колонка-2", "Колонка-3"})
Добавлено через 3 минуты
ну или как сказали выше:
VB.NET
1
ListView1.Items.Add(New ListViewItem({"Колонка-1", "Колонка-2", "Колонка-3"}))
0
 Аватар для dimsaratov
356 / 295 / 78
Регистрация: 02.10.2013
Сообщений: 476
Записей в блоге: 5
08.06.2016, 21:47
VB.NET
1
2
3
4
Dim lvItem as ListViewItem
lvItem=ListView1.Items.Add("111")
lvItem.SubItems.Add("222")
lvItem.SubItems.Add("333")
Подробнее здесь
https://msdn.microsoft.com/ru-... -snippet-1
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.06.2016, 21:47
Помогаю со студенческими работами здесь

Добавление Items в Listview
Не получается добавить элементы в Listview. Задаю колонки и потом пытаюсь добавить элементы в цикле. ...

Добавление из textbox'а в ListView
Ребята помогите пожалуйста, в програмировании полный ноль, если возможно объясните все как можно доходчивее. Например: У меня есть 3...

Быстрое добавление в ListView
Обычное добавление в listView по item такое ListViewItem ^item1 = gcnew ListViewItem(&quot;--------------&quot;); ...

Добавление данных в ListView
Вес привет. Написал приложение, которые считывает данные, добавляет их в список, а потом со списка читает и добавляет в ListView. Но как...

Добавление элементов в ListView
Доброго времени суток. Нужна помощь в добавлении элементов в ListView. Вот есть такая таблица: http://vistar.pp.ua/images/ListView.bmp ...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru