vb.net中的listview控件使用问题

我编了一个小程序,其中有一个listview控件,在添加了文件夹路径后,想要实现如下功能:在listview中的一项上点右键,弹出一个菜单,菜单上有“删除”,点击“删除”... 我编了一个小程序,其中有一个listview控件,在添加了文件夹路径后,想要实现如下功能:在listview中的一项上点右键,弹出一个菜单,菜单上有“删除”,点击“删除”,则将选中的项删掉(即删除图片中的“D:\重要文件\desktop”)现在我已经通过上网查询,掌握了“弹出菜单”、响应菜单中的“删除”,但我不知道怎么获得我鼠标右键点击时的项(即删除图片中的“D:\重要文件\desktop”),是用什么进行定位,返回右键选中的listview控件的item呢? 展开
 我来答
sheanjohn
2016-06-13 · 超过27用户采纳过TA的回答
知道答主
回答量:104
采纳率:0%
帮助的人:39万
展开全部

可以按shuift或者ctrl多选,再右键选删除,也可单击单个item右键选择删除。


如果附件代码有问题,试试下面这个,我没时间改了。

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        With ListView1

            Dim i As Integer

            .Items.Clear()'清空

            .View = View.Details'用报表模式显示

            .FullRowSelect = True'整行选择

            .ContextMenuStrip = ContextMenuStrip1'指定右键菜单的控件

            .Columns.Add("ID", 100)'添加列头

            .Columns.Add("啦啦啦", 200)

            '加入15个数据方便测试

            For i = 0 To 15

                .Items.Add("项目" & i)

                .Items(i).SubItems.Add("我是第" & i & "个项目")

            Next

        End With

    End Sub

    '菜单中删除的click事件

    Private Sub menu_del_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles menu_del.Click

        If ListView1.SelectedItems.Count < 1 Then

            '但选中的item数量不足一个

            MessageBox.Show("至少选择一个")

        Else

            '删除选中的那个item

            ListView1.SelectedItems(0).Remove()

        End If

    End Sub


阳光的雷咩咩
2016-06-13 · TA获得超过1.4万个赞
知道大有可为答主
回答量:2.3万
采纳率:66%
帮助的人:7727万
展开全部

给你做了个Demo。

Public Class Form1
    '在设计器里先拖一个菜单控件,添加好菜单项,
    '然后属性窗口里设置为ListView的ContextMenuStrip属性

    '定义全局变量表示点击的项
    Private item As ListViewItem

    '菜单单击事件,设计器中可以双击产生
    Private Sub LY_Click(sender As Object, e As EventArgs) Handles LY.Click
        MsgBox(Me.item.Text) '你需要的内容
    End Sub

    '属性窗口里生成事件
    Private Sub ListView1_MouseClick(sender As Object, e As MouseEventArgs) Handles ListView1.MouseClick
        Dim Pos = ListView1.PointToClient(Control.MousePosition)
        Dim Hit = ListView1.HitTest(Pos)
        Dim item = Hit.Item
        If Not item Is Nothing Then
            Me.item = Hit.Item
        End If
    End Sub
End Class
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
syx54
2016-06-13 · TA获得超过7378个赞
知道大有可为答主
回答量:6567
采纳率:83%
帮助的人:2714万
展开全部
Private Sub ListView1_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles ListView1.MouseClick
If e.Button = Windows.Forms.MouseButtons.Right Then
For Each MyItem As ListViewItem In Me.ListView1.SelectedItems
MsgBox("你按下的是鼠标右键,选中的是:" & MyItem.SubItems(0).Text)
Next
End If
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式