我在VB6中的表单中有一个ComboBox
(样式2 - 下拉列表)。
我想检测ListIndex
何时发生变化。
根据我的经验和我发现的情况,我已经得出结论,应该使用Click
事件(而不是Change
事件),但我没有找到具体的例子。
我设想的是使用全局变量来存储先前状态,并与之进行比较,但我认为这不是最好的方法。
有更好的方法吗?
PS:我添加了几个Sub
,如
Private Sub CBO1_Change()
Dim CurLI As Integer
CurLI = CBO1.ListIndex
MsgBox ("CBO1_Change. ListIndex =" & CurLI)
End Sub
每个活动Change
,DropDown
,GotFocus
,KeyDown
,KeyPress
,KeyUp
,LostFocus
,Scroll
,并确切地检查它们的作用,以便与文档进行一定的比较。
他们似乎都不允许同时获得这两个值(在“输入”ComboBox
之前和“退出”之后)。
答案 0 :(得分:1)
如果您想要检测点击的变化,同时能够访问这两个更改的值,那么正如您所说,您需要跟踪当前的选择:
Private m_currentIndex As Integer
Private Sub Form_Load()
m_currentIndex = -1
...
End Sub
Private Sub Combo1_Click()
If (Combo1.ListIndex <> m_currentIndex) Then
Debug.Print "change from "; m_currentIndex; " to "; Combo1.ListIndex
m_currentIndex = Combo1.ListIndex
End If
End Sub