在ListItem的MouseDown事件中调用contextMenu1.Show(listItem1, new Point(e.X, e.Y));

解决方案 »

  1.   

    补充一下:如果要知道是哪一条纪录被选中,可以通过listView1.SelectedItems来确定。
      

  2.   

    刊误:第一个回复的第一个英语单词应该是ListView
      

  3.   

    为什么这里没有hittest这个方法?
      

  4.   

    cometsky(天空中自由翱翔的彗星) 
    能不能写详细点。?
    我正在测试你告诉我的方法。
    listview 里的listviewitem 是动态生成的
    我用
     ContextMenu1.Show(Me.ListView1.SelectedItems(0), New Point(e.X, e.Y))
    报错
    “System.Windows.Forms.ListViewItem”的值无法转换为“System.Windows.Forms.Control”。
      

  5.   

    在ListView中你可以使用GetItemAt方法实现与HitTest相类似的一些功能。private void listView1_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e)
    {
    ListViewItem item=this.listView1.GetItemAt(e.X,e.Y);
    if (item!=null)
    {
    this.contextMenu1.MenuItems.Clear();
    this.contextMenu1.MenuItems.Add(item.Text);
    this.contextMenu1.Show(this.listView1,new Point(e.X,e.Y));
    }
    }
      

  6.   

    谢谢 dy_2000_abc(芝麻开门) 
    这个事件和contextmunu的popup会冲突
    因为只要点右键,contextmenu就会弹出
      

  7.   

    我改成动态生成contextmenu
    Private Sub ListView1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ListView1.MouseUp
                Dim item As ListViewItem
                item = Me.ListView1.GetItemAt(e.X, e.Y)
                If e.Button = MouseButtons.Right Then
                        Dim ContextMenu1 As New ContextMenu()
                    If Not IsNothing(item) Then
                        
                        ContextMenu1.MenuItems.Clear()
                        ContextMenu1.MenuItems.Add(item.Text.ToString)
                        ContextMenu1.Show(Me.ListView1, New Point(e.X, e.Y))
                    Else
                        
                        ContextMenu1.MenuItems.Clear()
                        ContextMenu1.MenuItems.Add("你没有点击item")
                        ContextMenu1.Show(Me.ListView1, New Point(e.X, e.Y))
                    End If
                End If        End Sub
      

  8.   

    使用this.contextMenu1.Show()方法最好将listView1的ContextMenu设为“无”