在ListView上处理ContextMenuStrip

时间:2011-01-02 19:57:07

标签: c# .net listview contextmenu

我有一些包含一些项目的ListView。 ListView有一些组定义,一些列,并添加了一些项目。 ListView还设置了ContextMenu。

在ContextMenu的打开事件中,我将检查是否在ListView项上打开了上下文菜单。所以,我做了:

private void CtxMenuProcess_Opening(object sender, CancelEventArgs e)
{
    ContextMenuStrip ctxMenuStrip = (ContextMenuStrip)sender;
    ListViewHitTestInfo hitTestInfo = LstViewAdminApp.HitTest(LstViewAdminApp.PointToClient(Control.MousePosition));

    if (hitTestInfo.Item != null) {
        //....
    }
 }

可悲的是,没有发生这种打击。

我觉得 ctxMenuStrip 的坐标是错误的,但我尝试了很多“变种”而没有成功,而且ListView.HitTest的文档很差。

任何人都可以帮助我?


进一步调查没有带来任何解决方案。我开始怀疑ListView控件初始化。这是我设置的非默认属性:

  • 激活= OneClick
  • Columns = Colum [3]
  • ContextMenuStrip = ContextMenu
  • Dock = Fill
  • FullRowSelect = true
  • GridLines = true
  • Groups = Group [3]
  • HideSelection = false
  • LabelWrap = false
  • 排序=升序
  • 查看=详情

1 个答案:

答案 0 :(得分:0)

当我一段时间处理这样的事情时,我发现this example中的代码非常有用。