listviews不更新子项目(VB.net)

时间:2018-12-08 12:16:04

标签: vb.net

我在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}

我该如何解决

1 个答案:

答案 0 :(得分:0)

这是因为您正在使用事件。

Handles ListView1.SelectedIndexChanged

仅当ListView中的所选项目将被更改时,这才调用sub。第二次单击时,您不会更改所选索引,它保持不变,这就是为什么它不会更新。

将事件更改为“单击”或“鼠标单击”:

Private Sub ListView1_SelectedIndexChanged(sender As Object, e As EventArgs) 
Handles ListView1.Click