vb.net - 列表视图不更新子项(VB.net)
问题描述
我在 VB.net 中有一个列表视图,其中有两列(项目名称、坐标)。Itemname 列填充了每行的预定义名称(总行数=5),当用户选择一行并单击屏幕上的任意位置时,坐标列将填充鼠标位置坐标。
**Itemname|Coordinates:**
Item1 (x,y)
Item2 (x,y)
Item3 (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
结果:
first time selected item1:
Item1 {X=801,Y=432}
second time selected item1:
Item1 {X=801,Y=432} ===>doesn't update to second click {X=743,Y=231}
我怎样才能解决这个问题?
解决方案
这是因为您正在使用的事件。
Handles ListView1.SelectedIndexChanged
这将仅在 ListView 中的选定项目将被更改时调用 sub。在第二次单击时,您不会更改所选索引,它保持不变,这就是它不更新的原因。
将事件更改为 Click 或 MouseClick:
Private Sub ListView1_SelectedIndexChanged(sender As Object, e As EventArgs)
Handles ListView1.Click
推荐阅读
- flutter - 文本的某些部分在 Flutter web 中未呈现
- python - 编码 base 64 字符串
- c - 在 C 中运行自定义文件
- html - 将html formdata发送到nodejs服务器时出错
- time-complexity - NP完全问题到分区问题减少
- c# - 您好,我想解压缩评论列表 (ICollection) 并使用 c# 中的数据绑定显示评论。如何访问列表中的每条评论?
- flutter - 要列出的字符串
- > - 错误:输入“列表”
' 不是类型 'List 的子类型 - >'
- javascript - 如何在 Symfony 项目中使用 LeafletJS Map?
- django-rest-framework - 在序列化程序中获取外键的值
- c# - SQL 不运行字符串命令