/ / Listview - výber mimo hranice zoznamu (bez autoscroll, keď sú kľúče hore / dole) - vb.net, listview, scroll

Listview - voľba mimo okrajov listview (bez autoscrollu pri klávesách hore / dole) - vb.net, listview, scroll

Povedzme, že z 500 položiek v zozname listov 15 je viditeľný v ľubovoľnom čase, problém, ktorý mám mať je pri prvej / poslednej položke v aktuálnom zobrazení je dosiahnutá s výberom tlačidiel hore / dole, presahuje hranice zoznamu a nevidím, čo je aktuálne vybrané.

Viem, že dôvodom je kód ListView1_KeyDown, ale musel som si dať up / down kľúčový kód spôsobiť inak stlačenie tlačidla nahor alebo nadol z aktuálneho výberu by preskočiť na prvú položku listview.

Dám niekoľko obrázkov, ak neviem vysvetliť toto právo.

tu zadajte popis obrázkutu zadajte popis obrázku tu zadajte popis obrázku

    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

Vyskúšalo všetko v vlastnostiach a nenašlo riešenie.

odpovede:

1 pre odpoveď č. 1

Vyriešil to s pokusom a omylom.

Toto nastavenie (pridaná čiara do kľúčovej a dolnej časti kódu):

ListView1.Items(i).EnsureVisible()