Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Убрать выделение элемента в ListView


Автор: Нитонисе 22.12.2009, 22:45
Что-то не найду как это сделать. Надо при выходе из компонента ListView (OnExit) убрать выделение. Есть кнопка, при нажатии на которой выделенный элемент удаляется. Так вот хотелось бы, чтобы в случае если ListView не в фокусе при нажатии на кнопке удаления - удаления не происходило. Для этого нужно снять выделение элемента в списке.

Автор: shklowsky 23.12.2009, 00:17
убирать в таком случае выделения с итемов я счел бы неразумным.
проще перевести фокус на другой контрол формы.
например  Form1->SelectNext(ListView1,1,0);

Автор: volvo877 23.12.2009, 00:37
Цитата(shklowsky @  22.12.2009,  23:17 Найти цитируемый пост)
проще перевести фокус на другой контрол формы.
Это не спасет от удаления выделенного элемента при нажатии на кнопку... А если HideSelection = false, то выделение даже визуально не уберется...
Цитата(Нитонисе @  22.12.2009,  21:45 Найти цитируемый пост)
Для этого нужно снять выделение элемента в списке. 
Для этого у TListView есть метод ClearSelection()

Автор: Нитонисе 23.12.2009, 12:22
Цитата(volvo877 @  23.12.2009,  00:37 Найти цитируемый пост)
Для этого у TListView есть метод ClearSelection()

Действительно)

Автор: artsb 23.12.2009, 14:11
Ещё можно ItemIndex = -1

Автор: shklowsky 23.12.2009, 15:09
Цитата(Нитонисе @  22.12.2009,  22:45 Найти цитируемый пост)
Так вот хотелось бы, чтобы в случае если ListView не в фокусе при нажатии на кнопке удаления - удаления не происходило.


Цитата(Нитонисе @  22.12.2009,  22:45 Найти цитируемый пост)
Надо при выходе из компонента ListView (OnExit) убрать выделение.

логика - железобетонная.  выделяешь на листвью итемы, чтобы их удалить. И при покидании компонента курсором, оказывается, что на листвью ничего не выделено. А как же тогда юзер будет пользоваться кнопкой "Удалить"?

Автор: Нитонисе 23.12.2009, 15:12
Цитата(shklowsky @  23.12.2009,  15:09 Найти цитируемый пост)
логика - железобетонная.  выделяешь на листвью итемы, чтобы их удалить. И при покидании компонента курсором, оказывается, что на листвью ничего не выделено. А как же тогда юзер будет пользоваться кнопкой "Удалить"?

Действительно - никак. Потому этим методом не воспользоваться, однако вопрос темы решен - пригодится в будущем)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)