2013-04-27 37 views
0

这个问题困扰了我一段时间 - 当试图向下滚动面板时,栏将不会移动,直到释放鼠标(在其他控件中似乎没有问题)。Winforms面板和滚动条问题

在本次论坛http://csharpcode25.appspot.com/question/5080f1624f1eba38a4ca86bf用户已经经历了同样的问题,一个可能的解决方案是通过覆盖WndProc中给出 - 不知道如果事情得到迷失东京从C#到VB,但它只是抛出号码有误,参数类型‘’是'System.IntPtr',它不是数字。'在第一行。有任何想法吗?

感谢

Public Class Panelx 
    Inherits Panel 
    Private Const WM_HSCROLL As Integer = &H114 
    Private Const WM_VSCROLL As Integer = &H115 

    Protected Overrides Sub WndProc(ByRef m As Message) 
     Try 
      If (m.Msg = WM_HSCROLL OrElse m.Msg = WM_VSCROLL) AndAlso ((CInt(Fix(m.WParam)) And &HFFFF) = 5) Then 
       ' Change SB_THUMBTRACK to SB_THUMBPOSITION 
       m.WParam = CType((CInt(Fix(m.WParam)) And (Not &HFFFF)) Or 4, IntPtr) 
      End If 
      MyBase.WndProc(m) 
     Catch ex As Exception 
      EmailError(ex) 
     End Try 
    End Sub 
End Class 

回答

1

只需删除该修补程序中的()的调用方法:

If (m.Msg = WM_HSCROLL OrElse m.Msg = WM_VSCROLL) AndAlso ((CInt(m.WParam) And &HFFFF) = 5) Then 
    ' Change SB_THUMBTRACK to SB_THUMBPOSITION 
    m.WParam = CType((CInt(m.WParam) And (Not &HFFFF)) Or 4, IntPtr) 
End If 
+0

嘿Carko - 高兴有人是清醒的 - 太感谢你了,这个问题已经窃听我的sooooooooo长:-) – gchq 2013-04-27 23:01:33