ListView.ColumnClick似乎不会触发列之外的标题区域中的点击(最后一列右侧的区域,如果有的话)
有一些简单的方法来检测点击吗?
答案 0 :(得分:2)
listview标题是listview控件中的单独实体/窗口。遗憾的是,listview没有提供任何鼠标事件,您可以使用它捕获标题上的任何活动(除了明显的活动)。您将不得不创建listview控件的扩展版本,并使用一些较低级别的非托管方法来访问该窗口并使这些事件可用。
您可以从这里开始:http://www.codeproject.com/KB/list/HeaderRightClick.aspx。
答案 1 :(得分:1)
即使在较低的水平,这也不容易。给定的文章依赖于MenuOpening事件,当用户左键单击标题时,该事件 not 。实际上,当在列之外单击(左)标题时,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;