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

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

我是否只需要将ContextMenuStrip分配给ListView,然后根据ListView当前选择的项目,从那里继续?

最佳答案

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);
        }
    }
}

10-08 18:19