有没有办法将ContextMenuStrip分配给ListViewItem?

时间:2012-04-12 15:26:23

标签: c# winforms listview listviewitem contextmenustrip

我想将相同的ContextMenuStrip分配给表单上的所有ListViewItems。这些ListViewItems是动态创建的。

不幸的是,似乎ListViewItems没有可以分配的ContextMenuStrip属性(当然,ListView本身也是如此)。

我是否必须将ContextMenuStrip分配给ListView,然后根据ListView当前选择的项目从那里开始?

1 个答案:

答案 0 :(得分:5)

private void listView1_MouseDown(object sender, MouseEventArgs e)
{
    if (e.Button == MouseButtons.Right)
    {
        var hitTestInfo = listView1.HitTest(e.X, e.Y);
        if (hitTestInfo.Item != null)
        {
            var loc = e.Location;
            loc.Offset(listView1.Location);

            // Adjust context menu (or it's contents) based on hitTestInfo details
            this.contextMenuStrip2.Show(this, loc);
        }
    }
}