649 / 601 / 92
Регистрация: 19.03.2012
Сообщений: 1,128
1
.NET 4.x

Удаление Item'a из ListView при пустом SubItem'e

12.10.2013, 19:09. Показов 685. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток!
Суть проблемы: имеется ListView, в котором несколько колонок. Требуется удалить все Item'ы, не имеющие записи во второй колонке. Сделал так:
VB.NET
1
2
3
4
5
For Each lvi As ListViewItem In ListView1.Items
    If lvi.SubItems(1).Text = "" Then
        ListView1.Items.Remove(lvi)
    End If
Next
, но студия ругается на вторую строку, а именно сообщает о том, что index имеет недопустимое значение, хотя в ListView колонок гораздо больше. Что я упустил?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.10.2013, 19:09
Ответы с готовыми решениями:

Удаление символов из TextBox - при пустом поле возникает ошибка
по нажатию кнопки из текстового поля удаляется по одному символу. а если нажать кнопку "стереть"...

Неактивная кнопка при пустом Tedit'е и актиная при непустом.
Здравствуйте! Нужно, чтобы кнопка была неактивной, если TEdit'ы пустые и чтобы становилась...

Ошибка при пустом Edit
Вообщем, создал для Edit1 событие OnChange. Когда я ввожу числа всё хорошо работает, и если я хочу...

Ошибка при пустом Edit
Ребят, что не так? Это процедура поиска. Собственно ошибку должно выдавать, когда вводим значение и...

6
307 / 248 / 40
Регистрация: 28.09.2013
Сообщений: 600
12.10.2013, 19:19 2
Не уверен, ибо не проверял... Но я бы написал для начала так:
VB.NET
1
If lvi.SubItems Is Nothing Then
Добавлено через 1 минуту
Цитата Сообщение от Nachrichter Посмотреть сообщение
index имеет недопустимое значение
М...а какое оно, это недопустимое значение?
0
649 / 601 / 92
Регистрация: 19.03.2012
Сообщений: 1,128
12.10.2013, 19:23  [ТС] 3
Winney, так я уже пробовал и For i = 0 To... тоже. Недопустимое значение index = 1.
0
307 / 248 / 40
Регистрация: 28.09.2013
Сообщений: 600
12.10.2013, 19:35 4
Попробуй так:
VB.NET
1
lvi.SubItems.Item(iЗНАЧЕНИЕ).Text


Нет. Так не пойдет. Я понял на что он ругается.

Тебе нужно проверить, есть ли это значение. А то получается ты ссылаешься на несуществующий subitem.
Воспользуйся

VB.NET
1
lvi.SubItems.Count
1
Почетный модератор
21373 / 9107 / 1082
Регистрация: 11.04.2010
Сообщений: 11,014
12.10.2013, 19:40 5
VB.NET
1
2
3
4
5
        For I As Integer = ListView1.Items.Count - 1 To 0 Step -1
            If ListView1.Items(I).SubItems(1).Text = "" Then
                ListView1.Items.RemoveAt(I)
            End If
        Next
2
307 / 248 / 40
Регистрация: 28.09.2013
Сообщений: 600
12.10.2013, 19:43 6
Да.проверил.все работает. Получи количество элементов, и если оно больше некого значения (столбец, который проверяешь), то тогда ужн запиливай свой делит.

Добавлено через 47 секунд
Цитата Сообщение от Памирыч Посмотреть сообщение
For I As Integer = ListView1.Items.Count - 1 To 0 Step -1
* * * * * * If ListView1.Items(I).SubItems(1).Text = "" Then
* * * * * * * * ListView1.Items.RemoveAt(I)
* * * * * * End If
* * * * Next
вот вот
0
649 / 601 / 92
Регистрация: 19.03.2012
Сообщений: 1,128
12.10.2013, 20:04  [ТС] 7
Памирыч, Winney, благодарю! Давненько я с ListView не работал, как-то этот момент подзабылся...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.10.2013, 20:04
Помогаю со студенческими работами здесь

Исключение при пустом edit
В общем сделал фильтр по dbgrid через edit: procedure TForm1.edt1Change(Sender: TObject);...

Не выводить при пустом значении
Здравствуйте. Я вывожу дату $row , и при пустом значении выводятся нули. Как сделать чтобы при...

Скрывать при пустом значении
Добрый вечер! Есть страница статей. Выводятся поля <!-- Определение --> <ul...

Ошибка при пустом файле json
import json filename = 'number.json' def new_number(): number = int(input("Ваше исло:...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru