vb.net中的listview控件使用问题
可以按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
给你做了个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
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