让我们说,列表视图15中的500个项目随时可见,我遇到的问题是当达到第一个/最后一个项目在当前视图时/向下键选择超出列表视图边界,我看不到当前选择的内容。
我知道原因是ListView1_KeyDown代码,但我不得不放下/关闭密钥代码,否则从当前选择按下向上或向下键会跳到列表视图的第一项。
如果我没有解释这个问题,我会写一些图片。
Private Sub ListView1_KeyDown(sender As Object, e As KeyEventArgs) Handles ListView1.KeyDown
On Error Resume Next
If e.KeyCode = Keys.Enter Then
e.SuppressKeyPress = True
TextBox3.Text = ListView1.SelectedItems(0).SubItems(0).Text
TextBox4.Focus()
ElseIf e.KeyCode = Keys.Down Then
For i As Integer = 0 To ListView1.Items.Count - 1
If ListView1.Items(i).Selected AndAlso i <>
ListView1.Items.Count - 1 Then
ListView1.Items(i).Selected = False
ListView1.Items(i + 1).Selected = True
ListView1.Focus()
e.Handled = True
Exit For
End If
Next
ElseIf e.KeyCode = Keys.Up Then
For i As Integer = 0 To ListView1.Items.Count - 1
If ListView1.Items(i).Selected AndAlso i <>
ListView1.Items.Count - 1 Then
ListView1.Items(i).Selected = False
ListView1.Items(i - 1).Selected = True
ListView1.Focus()
e.Handled = True
Exit For
End If
Next
End If
End Sub
尝试了所有属性,但没有找到解决方案。
答案 0 :(得分:1)
经过反复试验解决了这个问题。
这修复了它(在代码的向上键和向下键部分添加了行):
ListView1.Items(i).EnsureVisible()