2013-02-11 1 views
0

매우 간단하지만 현재 현재이 문제가 있습니다. 나는 목록보기를 가지고 있으며 항목을 클릭 할 때마다 문자열 변수에 이름을 저장합니다. 목록보기에서 항목을 클릭 한 다음 항목을 선택하지 않고 목록보기 내부를 다시 클릭하면 포커스가 손실되지 않고 이전에 선택한 항목의 이름이 문자열 변수에 저장됩니다. 내가 원하는 것은 항목을 클릭 한 다음 항목을 선택하지 않고 목록보기 내부 또는 외부를 클릭 할 때마다 포커스를 잃고 문자열 변수에 항목의 이름을 저장하지 않아야한다는 것입니다.목록보기에서 항목을 선택하지 않은 경우 초점이 맞지 않아야합니다.

답변

0

MouseUp event에서 시도 할 수 있습니다.

Private Sub lvlcheckin_MouseUp(sender As Object, e As MouseEventArgs) Handles lvlcheckin.MouseUp 
    If e.Button = Windows.Forms.MouseButtons.Left Then 

     If lvlcheckin.FocusedItem.Selected = True Then 
      lvlcheckin.FullRowSelect = True 
     Else 
      lvlcheckin.FullRowSelect = False 
     End If 
    End If 
End Sub 
0

이 상황을 처리하는 더 좋은 방법은 MouseClick 이벤트를 사용하는 대신 SelectedIndexChanged 이벤트를 사용하는 것입니다. 이 코드를 확인하십시오.

Private Sub ListView1_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles lvReceivedFiles.SelectedIndexChanged 

If lvRecievedFiles.FocusedItem.Selected = True 

      lvReceivedFiles.FullRowSelect = True 

      'When an item is clicked in the list view, store its name. 
      fName = "\" & Path.GetFileName(lvReceivedFiles.FocusedItem.Text) 

Else 

      'This part here doesn't make any sense because it doesn't execute 
      'every time I click in the list view without selecting any item. 
      'ListView.FocusedItem.Selected is always true. 

End If 

End Sub 
관련 문제