我使用mshflexgrid显示我的数据,奇怪的是最近不知道我什么地方改了之后这个滚动条就不好用了.
它好象会被锁定一个位置。好象是我点击过某处时它就会锁定在那个位置,锁定的现象是无论是左、右、上、下流动,只要被点击的位置到达了显示的边框后,就再也无法滚动了,比如我点在第十行第十格的位置上,如果我要右移,当第十格到达显示位置的第一格上时,它就再也不动了,就算右边还有好多的数据,但就是移不过去了。你得点击一下比如第十五格位置上,才能再移五格位置。左移上移下移等也一样。
需要如何解决?
还有,如何判断这个自带流动条是左移、右移、上移还是下移?
它只有一个点击滚动条的事件。
mshflexgrid1_scroll()
只有这么个事件。如果获取现在是上移或下移,或右移等的信息?有这个信息我也可以自己解决我的问题。

解决方案 »

  1.   

    Private Sub MSHFlexGrid1_Scroll()
        Debug.Print MSHFlexGrid1.LeftCol, MSHFlexGrid1.TopRow
    End Sub
    根据这两个属性的变化,可以判断出滚动的方向
      

  2.   

    比如这样
    Dim nLeftCol As Long, nTopRow As LongPrivate Sub Form_Load()
        nLeftCol = MSHFlexGrid1.LeftCol
        nTopRow = MSHFlexGrid1.TopRow
    End SubPrivate Sub MSHFlexGrid1_Scroll()
        With MSHFlexGrid1
            If .LeftCol < nLeftCol Then
                Debug.Print "滚动条向左"
            ElseIf .LeftCol > nLeftCol Then
                Debug.Print "滚动条向右"
            ElseIf .TopRow < nTopRow Then
                Debug.Print "滚动条向上"
            Else
                Debug.Print "滚动条向下"
            End If
            nLeftCol = .LeftCol
            nTopRow = .TopRow
        End With
    End Sub
      

  3.   

    楼主,我也发生了同样的问题,但是添加了三楼的代码下去,依然不可以自由移动。是不是MSHFLEXGFRID这个控件的问题?