tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル 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

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。