как убрать выделение в listview

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
RuslanG
Новичок
Новичок
 
Сообщения: 37
Зарегистрирован: 17.08.2006 (Чт) 14:59

как убрать выделение в listview

Сообщение RuslanG » 25.08.2006 (Пт) 11:07

Выделяем элемент в листвью
после нажатия кнопки нужно, чтобы в листвью не было выделено ни одного элемента.
Как это сделать?

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Re: как убрать выделение в listview

Сообщение Andrey Fedorov » 25.08.2006 (Пт) 12:01

RuslanG писал(а):Выделяем элемент в листвью
после нажатия кнопки нужно, чтобы в листвью не было выделено ни одного элемента.
Как это сделать?


Код: Выделить всё
    Dim li As MSComctlLib.ListItem
    With ListView1
        For Each li In .ListItems
            If li.Selected Then li.Selected = False
        Next li
        Set .SelectedItem = Nothing
    End With
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 25.08.2006 (Пт) 14:02

Вот это

If li.Selected Then li.Selected = False

Можно заменить на просто

li.Selected = False

И вот это

Set .SelectedItem = Nothing

Вообще выкинуть, ибо после приведенного цикла, это бессмысленно.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 25.08.2006 (Пт) 14:24

RayShade писал(а):Вот это
If li.Selected Then li.Selected = False
Можно заменить на просто
li.Selected = False


Можно, конечно, но я бы предварительно померил скорость при большом количестве элементов... Я, кстати, не мерил, ибо ListView практически не использую. Но в других местах подобная проверка помогала несколько увеличить скорость...

RayShade писал(а):И вот это
Set .SelectedItem = Nothing
Вообще выкинуть, ибо после приведенного цикла, это бессмысленно.


Это совершенно разные вещи, вообще-то - SelectedItem указывает текущий элемент, а Selected - на то выделен или нет указанный элемент.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 25.08.2006 (Пт) 14:32

Хочешь сказать, что проверка значения+установка значения может выполняться быстрее, чем только установка значения? Верится с трудом...
Весь мир матрица, а мы в нем потоки байтов!

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 25.08.2006 (Пт) 14:34

Это не значение, а свойство.
И если выделено, к примеру, 5 элементов из 100, то может быть и быстрее, в зависимости от того, что в коде присвоения указано.

Во всяком случае я применяю If S <> Label1.Caption Then Label1.Caption = S, вместо Label1.Caption = S. Разница заметная.
Lasciate ogni speranza, voi ch'entrate.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 25.08.2006 (Пт) 14:37

!Viper! писал(а):Хочешь сказать, что проверка значения+установка значения может выполняться быстрее, чем только установка значения? Верится с трудом...


Ну почему? Вполне может - скажем если в контроле выделены 10 из 10000 значений. Все в любом случае все зависит от внутренней реализации в самом контроле - если все грамотно написано, то разницы не будет.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 124

    TopList  
cron