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

2025-01-04 07:55:26
推荐回答(3个)
回答1:

可以按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


回答2:

给你做了个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

回答3:

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