当单击向下箭头上的msflexgrid滚动条时,我如何知道我已经单击了向下箭头。给我样本代码,如果可能的话。
谢谢
发布于 2011-09-21 01:58:54
这取决于你想要它做什么(这定义了你需要它的具体程度)。使用Scroll事件可以判断网格滚动成功的时间:
Private Sub MSFlexGrid1_Scroll()
Debug.Print "Scrolled"
End Sub如果您需要区分向下和向上(以及从较大的条形单击移动中的单个移动),则必须跟踪顶行:
Option Explicit
Public GridTop As Long
Private Sub Form_Load()
Dim lA As Long
MSFlexGrid1.Cols = 4
MSFlexGrid1.Clear
For lA = 1 To 20
MSFlexGrid1.AddItem lA & vbTab & "bob-" & lA & vbTab & lA & "-fred" & vbTab & lA & "-joe-" & lA
Next lA
MSFlexGrid1.RemoveItem 1
GridTop = MSFlexGrid1.TopRow
End Sub
Private Sub MSFlexGrid1_Scroll()
Debug.Print "Scrolled"
Debug.Print MSFlexGrid1.TopRow
If MSFlexGrid1.TopRow = GridTop + 1 Then
Debug.Print "Down arrow (effective)"
End If
GridTop = MSFlexGrid1.TopRow
End Sub如果你真的需要知道什么时候点击了向下箭头,它是否真的滚动了网格,现在你可以进行子类化了。试试这个:
http://www.planetsourcecode.com/vb/scripts/ShowCode.asp?txtCodeId=59656&lngWId=1
只需在示例项目中将flexgrid替换为rtfExample -我尝试了一下,似乎工作得很好。
https://stackoverflow.com/questions/6859408
复制相似问题