Столбец списка просмотраНажмите снаружи столбцы - PullRequest
2 голосов
/ 24 августа 2009

ListView.ColumnClick, по-видимому, не генерирует щелчки в области заголовка, которая находится за пределами столбцов (область справа от последнего столбца, если они есть)обнаружить клики здесь?

Ответы [ 2 ]

2 голосов
/ 24 августа 2009

Заголовок списка - это отдельная сущность / окно внутри элемента управления списком. К сожалению, listview не предоставляет никаких событий мыши, с помощью которых вы можете захватить любую активность в заголовке (кроме очевидных). Вам нужно будет создать расширенную версию элемента управления listview и использовать некоторые неуправляемые методы более низкого уровня, чтобы добраться до этого окна и сделать эти события доступными.

Вы можете начать здесь: http://www.codeproject.com/KB/list/HeaderRightClick.aspx.

1 голос
/ 25 августа 2009

Даже на более низком уровне это сделать не так просто. Данная статья опирается на событие MenuOpening, которое не отправляется, когда пользователь нажимает на заголовок. Фактически, ListView не получает никаких уведомлений, когда заголовок (слева) щелкается за пределами столбцов.

ObjectListView (обертка с открытым исходным кодом вокруг .NET WinForms ListView) содержит все необходимые сантехнические системы и может быть легко изменен для этого.

В файле HeaderControl.cs найдите метод WndProc () и добавьте его в оператор case, который там находится:

case 0x0201: //WM_LBUTTONDOWN
    if (this.ColumnIndexUnderCursor == -1) {
        System.Diagnostics.Debug.WriteLine("header click on no column");
    };
    break;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...