如何通过右键单击列表视图项打开上下文菜单

本文关键字:上下文 菜单 视图 何通过 右键 单击 列表 | 更新日期: 2023-09-27 17:56:04

标题几乎说明了一切。有人可以向我解释如何通过选择然后右键单击ListViewListViewItem来打开上下文菜单吗?

我尝试使用以下代码

private void listView1_MouseClick(object sender, MouseEventArgs e)
{            
    if (e.Button == MouseButtons.Right)
    {
        if (listView1.FocusedItem.Bounds.Contains(e.Location) == true)
        {
            contextMenuStrip1.Show(Cursor.Position);
        }
    } 
}

但是我不知道如何使用ListView注册此事件处理程序。每次尝试时,我都会收到委托参数错误的错误,因为我使用 MouseEventArgs 而不是 EventArgs .

这是我用来注册EventHandler的错误代码

this.listView1.MouseClick += new System.EventHandler(this.listView1_MouseClick);

如何通过右键单击列表视图项打开上下文菜单

使用 listView1.ContextMenu=contexMenu1 将上下文菜单绑定到列表视图

然后你可以在listView1.MouseDown中使用以下代码

ListViewHitTestInfo lstHitTestInfo = listView1.HitTest(e.X, e.Y);
                if (e.Button == MouseButtons.Right)
                {
                    if (lstHitTestInfo.Item != null)
                    {
                        listView1.ContextMenuStrip = contextMenuStrip1;
                    }
                }

这将选择列表视图项并显示上下文菜单。