Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 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-сайт: aleksey.nemiro.ru
 Профиль | | #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-сайт: aleksey.nemiro.ru
 Профиль | | #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-сайт: aleksey.nemiro.ru
 Профиль | | #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
Я новичок )

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам