2009-05-12 7 views
1

私はHotTrackingでActivationプロパティを持つListViewを持っています。ユーザーがアイテムをクリックしてからイベントが発生するまでに約2秒の遅延があるようです。ユーザーがクリックするとすぐにイベントが発生する方法はありますか?ListView ItemActivate Delay

答えて

4

私はこの遅延を変更する方法がないことを発見しました。これは組み込みの設定です。

問題はMouseDownイベントは実際に遅延反応があり、が発生した後にSelectedItemsプロパティをに設定するだけです。

これは手動で行う必要があります:MouseClickイベントを使用します。すでに選択されているアイテムであっても、アイテムがクリックされた場合に発生します。 空きスペースをクリックすると起動しません。

Private Sub list_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles list.MouseClick 
    Dim item As ListViewItem = list.GetItemAt(e.X, e.Y) 
    If Not IsNothing(item) Then 
     do your stuff here 
    End If 
End Sub 

あなたはそれの

Private Sub list_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles list.MouseMove 
    Dim item As ListViewItem = list.GetItemAt(e.X, e.Y) 
    If Not IsNothing(item) Then 
     list.SelectedItems.Clear() 
     item.Selected = True 
    End If 
End Sub 
0

はい、代わりにSelectedIndexChangedイベントを使用してください。

+0

思想、このイベントを処理することにより、ホット追跡をシミュレートすることができますが、アイテムがすでに選択されている場合、それは動作しません。 –