我需要在VB6的ListBox控件中,当用户单击或双击项目时运行不同的代码。当我单击控件时,Click事件处理程序会执行。但是,我发现当我双击控件时,Click和DblClick事件处理程序都会执行。
有没有一个好的解决方案,只运行DblClick事件处理程序代码而不先执行Click代码?
感谢任何建议。
我需要在VB6的ListBox控件中,当用户单击或双击项目时运行不同的代码。当我单击控件时,Click事件处理程序会执行。但是,我发现当我双击控件时,Click和DblClick事件处理程序都会执行。
有没有一个好的解决方案,只运行DblClick事件处理程序代码而不先执行Click代码?
感谢任何建议。
单击某个项目时,会触发单击事件。
如果再次单击同一项目,则仍会触发单击事件。
双击项目时,会同时触发单击事件和双击事件。
注意点2。您需要在正在使用的表单中设置当前项目。每次检查单击事件时,首先要看当前项目是否与所单击的项目相同。如果不是相同项目,则正常处理单击事件。
如果双击新项目,则用户同时执行两件事情:选择新项目和执行双击项目。在这种情况下,首先触发单击,然后再触发双击。
这个序列与控件做您想要的事情没有什么不同。这与您点击新项目,等待X秒,然后双击同一项目的过程是相同的。
如果您的单击事件涉及将任务交给ActiveX EXE,并立即终止或设置数据以由后台计时器稍后处理,则需要有一个信号量或标志来指示单击事件生成的进程何时完成。只有在清除信号量后,才会处理双击事件。
如果您有其他详细信息,我的答案可以更具体。以下是一些可运行以查看列表框操作的代码。创建一个表单并将三个项目添加到列表中,然后添加以下代码。
Private Sub List1_Click()
Print "Clicked - " & Me.List1.List(Me.List1.ListIndex)
End Sub
Private Sub List1_DblClick()
Print "Double Clicked - " & Me.List1.List(Me.List1.ListIndex)
End Sub
请按照以下步骤操作:
您将看到发生的各种动作组合。