代码之家  ›  专栏  ›  技术社区  ›  second

listview列点击列外

  •  2
  • second  · 技术社区  · 16 年前

    这里有什么简单的方法来检测点击吗?

    2 回复  |  直到 16 年前
        1
  •  2
  •   Fabian    16 年前

    listview标题是listview控件内的一个单独实体/窗口。遗憾的是,listview不提供鼠标事件,您无法通过鼠标事件捕获标题上的任何活动(明显的除外)。您将不得不创建listview控件的扩展版本,并使用一些较低级别的非托管方法来访问该窗口并使这些事件可用。

    http://www.codeproject.com/KB/list/HeaderRightClick.aspx .

        2
  •  1
  •   Grammarian    16 年前

    即使在较低的级别,这也不是那么容易做到的。给定的文章依赖于MenuOpening事件,即

    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;