我在VB.net中有一个列表视图,其中有两列(项目名称,坐标)。 Itemname列将使用每行的预定义名称填充(总行数= 5),并且当用户选择一行并单击屏幕上的任意位置时,坐标列将使用鼠标位置坐标填充。 项目名称|坐标: 项目1(x,y) 项目2(x,y) 项目3(x,y) ....... 我的代码仅在我选择一行并首次单击任意位置时才有效,但是当我选择同一行并再次单击以更改坐标时,它不会更新为新坐标。 这是我的Item1代码:
Private Sub ListView1_SelectedIndexChanged(sender As Object, e As EventArgs)
Handles ListView1.SelectedIndexChanged
If ListView1.Items(0).Selected = True Then
Dim mp As Point = MousePosition
Dim lvitem As ListViewItem
ListView1.BeginUpdate()
lvitem = Me.ListView1.Items.Item(0)
lvitem.SubItems.Add(mp.ToString)
ListView1.Update()
ListView1.EndUpdate()
End If
End Sub
结果:
第一次选择项目1: Item1 {X = 801,Y = 432}
第二次选择项目1: Item1 {X = 801,Y = 432} ===>不会更新为第二次点击{X = 743,Y = 231}
我该如何解决
答案 0 :(得分:0)
这是因为您正在使用事件。
Handles ListView1.SelectedIndexChanged
仅当ListView中的所选项目将被更改时,这才调用sub。第二次单击时,您不会更改所选索引,它保持不变,这就是为什么它不会更新。
将事件更改为“单击”或“鼠标单击”:
Private Sub ListView1_SelectedIndexChanged(sender As Object, e As EventArgs)
Handles ListView1.Click