2014-04-11 4 views
1

목록보기 15의 500 개 항목이 언제든지 표시 될 수 있다고 가정 할 때 현재 또는 현재 항목 의 현재보기 위/아래 키를 눌러 선택하면 목록보기 경계를 벗어나고 현재 선택된 항목을 볼 수 없습니다.목록보기 - 목록보기 경계선을 넘어선 선택

그 이유는 ListView1_KeyDown 코드입니다.하지만 위/아래 키를 누르거나 키를 누르지 않으면 현재 목록에서 위 또는 아래 키를 눌러 목록보기의 첫 번째 항목으로 건너 뛸 수 있습니다.

이 권리를 설명하지 않을 경우 몇 가지 이미지를 적어 보겠습니다.

enter image description hereenter image description here enter image description here

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 

속성에 모든 노력을하고 해결책을 찾지 못했습니다.

답변

1

시행 착오로 해결했습니다.

이 그것을 고정 (코드의 업 키와 다운 키 부분 첨가 라인)

ListView1.Items(i).EnsureVisible()