Обрабатывать клики как CTRL + клики в ListView - PullRequest
0 голосов
/ 13 января 2012

У меня есть многоколонный элемент управления ListView, установленный в режим MultiSelect и Details. Когда пользователь нажимает на любой элемент в списке, я хочу обрабатывать его, как если бы он нажал CTRL + на элементе. Таким образом, если они нажмут на элемент, который уже выбран, он отменит его. Или, если они выбирают второй элемент, он выберет его без отмены выбора других выбранных элементов. Это для приложения в стиле киоска, где ввод осуществляется с помощью сенсорного экрана, а клавиатура может или не может быть доступна пользователю.

Ответы [ 2 ]

1 голос
/ 01 февраля 2012

Вы можете сделать это, обработав событие MouseUp и используя HitTest, чтобы проверить, какой элемент был нажат. Затем установите свойство Selected элемента:

item.Selected ^= true

Вы также можете проверить бесплатный компонент Лучше ListView Express из ComponentOwl. Он имеет мощный рисунок владельца, который позволяет отображать элементы в любом состоянии . Также позволяет настроить высоту предметов. Полная версия предлагает еще более интересные функции.

0 голосов
/ 13 января 2012

Вместо этого вы можете использовать ListBox в режиме рисования владельцем.

http://msdn.microsoft.com/en-us/library/system.windows.forms.listbox.aspx

и

http://msdn.microsoft.com/en-us/library/system.windows.forms.listbox.drawmode.aspx

...