Страница: 1 |
Страница: 1 |
Вопрос: Узнать Index нужного Item'a (ListView)
Добавлено: 09.07.08 21:40
Автор вопроса: olesis
Собстно сам вопрос, как можно узнать Index выделенного item'a? нужно для его удаления (всей выделенной строки) с помощью ListView1.Items.RemoveAt, посмотрел на форуме, есть примеры, но у меня таких классов даже нет
Ответы
Всего ответов: 10
Номер ответа: 1
Автор ответа:
Алексей
black admin
ICQ: 261779681
Вопросов: 87
Ответов: 633
Web-сайт:
Профиль | | #1
Добавлено: 10.07.08 05:22
FocusedItem
Номер ответа: 2
Автор ответа:
olesis
Вопросов: 4
Ответов: 30
Профиль | | #2
Добавлено: 11.07.08 23:03
Спасибо, а не подскажите как лучше сделать чтоб правильно удалял все выделенные строки? я делаю вот так:
Dim i As Integer
For i = 0 To ListView1.SelectedItems.Count
ListView1.Items.RemoveAt(ListView1.FocusedItem.Index)
Next
Но он как то криво работает )
Номер ответа: 3
Автор ответа:
ника
Вопросов: 1
Ответов: 111
Профиль | | #3
Добавлено: 12.07.08 08:21
public System.Windows.Forms.ListView.SelectedIndexCollection SelectedIndices { get; }
Member of System.Windows.Forms.ListView
Summary:
Gets the indexes of the selected items in the control.
Return Values:
A System.Windows.Forms.ListView.SelectedIndexCollection that contains the indexes of the selected items. If no items are currently selected, an empty System.Windows.Forms.ListView.SelectedIndexCollection is returned.
Номер ответа: 4
Автор ответа:
olesis
Вопросов: 4
Ответов: 30
Профиль | | #4
Добавлено: 12.07.08 12:39
Я попробовал с SelectedIndices, он возвращает массив выделенных итемов индексы, но, когда начинаешь в цикле удалять итемы с индексами полученными через SelectedIndices, то после удаления строки индексы у итемов меняются, и начинаются глюки, удаляются не те итемы, а иногда исключение получается, т.к такого итема с таким индексом уже нет что делать?
Номер ответа: 5
Автор ответа:
Алексей
black admin
ICQ: 261779681
Вопросов: 87
Ответов: 633
Web-сайт:
Профиль | | #5
Добавлено: 12.07.08 12:54
For Each
Номер ответа: 6
Автор ответа:
olesis
Вопросов: 4
Ответов: 30
Профиль | | #6
Добавлено: 12.07.08 13:31
дык я пробовал, тут без разницы какой цикл, итемы то удаляются и сдвигаются, т.е после удаления 1 итема индексы полученные через SelectedIndices уже не верны...
Номер ответа: 7
Автор ответа:
Алексей
black admin
ICQ: 261779681
Вопросов: 87
Ответов: 633
Web-сайт:
Профиль | | #7
Добавлено: 12.07.08 13:47
For Each +Remove без At
Номер ответа: 8
Автор ответа:
olesis
Вопросов: 4
Ответов: 30
Профиль | | #8
Добавлено: 12.07.08 13:59
Вот что я придумал с For Each
For Each Data As ListViewItem In ListView1.SelectedItems
ListView1.Items.Remove(Data)
Next
Вроде как часы работает
Номер ответа: 9
Автор ответа:
ника
Вопросов: 1
Ответов: 111
Профиль | | #9
Добавлено: 12.07.08 14:28
А ты чего ожидал? Просто удалять надо было начиная с максимального индекса и далее в порядке убывания
Номер ответа: 10
Автор ответа:
olesis
Вопросов: 4
Ответов: 30
Профиль | | #10
Добавлено: 12.07.08 14:36
Я новичок )