单击 ListView 的 SmallImageList 中的图像时引发事件
Raise an event when an image in a SmallImageList of a ListView is clicked
我目前正在开发一个包含 ListView 的 VB.NET 应用程序(使用 WinForms 制作)。我在我的 ListViews 中设置了一个带有 imageList 的 SmallImageList,因此 ListView 的每个项目都有一个 Image 和一些 text 显示(复选框是已禁用)。
我想在单击其中一个图像时处理事件,但在单击文本时不处理。我也想知道涉及到哪个项目。经过一些研究,我没有找到任何可以帮助我的东西。为了实现这一点,也许需要做一些工作。
您可以在 ListView
上使用 HitTest
方法让它告诉您哪个 ListViewHitTestLocation 被击中了。枚举值之一是 ListViewHitTestLocations.Image
,它会告诉您发送到函数的点在列表视图项目图像上。
Private Sub listView1_MouseDown(sender As Object, e As MouseEventArgs)
Dim results = listView1.HitTest(e.Location)
If results.Item IsNot Nothing Then
Console.WriteLine("{0} - {1}", results.Item.Text, results.Location)
End If
End Sub
我目前正在开发一个包含 ListView 的 VB.NET 应用程序(使用 WinForms 制作)。我在我的 ListViews 中设置了一个带有 imageList 的 SmallImageList,因此 ListView 的每个项目都有一个 Image 和一些 text 显示(复选框是已禁用)。
我想在单击其中一个图像时处理事件,但在单击文本时不处理。我也想知道涉及到哪个项目。经过一些研究,我没有找到任何可以帮助我的东西。为了实现这一点,也许需要做一些工作。
您可以在 ListView
上使用 HitTest
方法让它告诉您哪个 ListViewHitTestLocation 被击中了。枚举值之一是 ListViewHitTestLocations.Image
,它会告诉您发送到函数的点在列表视图项目图像上。
Private Sub listView1_MouseDown(sender As Object, e As MouseEventArgs)
Dim results = listView1.HitTest(e.Location)
If results.Item IsNot Nothing Then
Console.WriteLine("{0} - {1}", results.Item.Text, results.Location)
End If
End Sub