3

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

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

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

4

1 回答 1

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);
        }
    }
}
于 2012-04-13T06:16:14.093 回答