只显示选定列表视图记录的右键菜单选项 - Winforms C#.NET

3

alt text http://img413.imageshack.us/img413/9417/snapshotapp.jpg

这里是与ListView控件相关的ContextMenuStrip。然而,右键点击选项(编辑)会出现在我单击ListView区域的任何位置,这会导致异常错误,因为编辑实现只能处理选定行。我希望它只在选定行(蓝色高亮行)上出现。我该怎么做?

1个回答

9

将ContextMenuStrip属性重置为(none)。 实现MouseUp事件处理程序,并使用ListView.HitTest()查找单击的位置。例如:

    private void listView1_MouseUp(object sender, MouseEventArgs e) {
        if (e.Button == MouseButtons.Right) {
            var loc = listView1.HitTest(e.Location);
            if (loc.Item != null) contextMenuStrip1.Show(listView1, e.Location);
        }
    }

只是想让你知道,它没有起作用,当我右键单击时,我没有得到右键选项(编辑)。我不知道为什么。我正在努力弄清楚,一旦我搞清楚了,会告诉你的。如果有更多建议,将不胜感激。 - peace
嗯,除了未正确设置MouseUp事件之外,那里没有任何故障模式。在属性窗口中使用闪电图标。 - Hans Passant
成功了!这是我的错误,我在错误的控件上选择了MouseUp...谢谢! - peace
我把ListView放在Panel里面并添加了ContextMenuStrip,但是这根本不起作用... - Henrique C.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接