タイトル : Re^5: listviewのスクロールについて 投稿日 : 2008/10/08(Wed) 14:18 投稿者 : 花ちゃん
1列20桁程度のデータで10万行でテストして見ましたが問題なく瞬時に追随しました。 取敢えずマウスのスクロール(クリック・ドラッグ)関係のテストと ↓ ↑ キーによるスクロールでのテストのみで、その他の動作でのテストは十分に 行ってはいません。 Public Class myListView Public Event TopIndexChanged() Protected Overrides Sub WndProc(ByRef m As Message) Const WM_VSCROLL As Integer = &H115 Select Case m.Msg Case WM_VSCROLL RaiseEvent TopIndexChanged() End Select MyBase.WndProc(m) End Sub Protected Overrides Sub OnMouseWheel(ByVal e As MouseEventArgs) If e.Delta <> 0 Then RaiseEvent TopIndexChanged() End If End Sub Protected Overrides Sub OnKeyDown(ByVal e As KeyEventArgs) RaiseEvent TopIndexChanged() End Sub Protected Overrides Sub OnKeyUP(ByVal e As KeyEventArgs) RaiseEvent TopIndexChanged() End Sub End Class スクロールの同期をとる場合 Private Sub MyListView1_TopIndexChanged() Handles MyListView1.TopIndexChanged MyListView2.EnsureVisible(MyListView2.Items.Count - 1) MyListView2.EnsureVisible(MyListView1.TopItem.Index) End Sub Private Sub MyListView2_TopIndexChanged() Handles MyListView2.TopIndexChanged MyListView1.EnsureVisible(MyListView1.Items.Count - 1) MyListView1.EnsureVisible(MyListView2.TopItem.Index) End Sub |