DrawMode = Windows.Forms.DrawMode.OwnerDrawVariable
を設定した時、マウスホイールのスクロールが一瞬逆スクロールしている現象の対策
Private Function HIWORD(ByVal intValue As Integer) As Integer
If (intValue And &H80000000) = &H80000000 Then
Return (intValue >> 16)
End If
Return ((intValue >> 16) And &HFFFF)
End Function
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
Select Case m.Msg
Case &H20A 'WM_MOUSEWHEEL
Dim _d As Integer = HIWORD(m.WParam.ToInt32())
For _count As Integer = 1 To SystemInformation.MouseWheelScrollLines 'マウスホイールスクロール量(1行ずつ)
Me.TopIndex = Math.Max(0, Me.TopIndex + If(_d < 0, 1, -1))
Me.Invalidate()
Me.Update()
Next
Return
End Select
MyBase.WndProc(m)
End Sub
まぁ、1行ずつスクロールするという事だ。
0 件のコメント:
コメントを投稿