热情软件屋

 

快速地连续点击时 Click 事件的响应好象并不连续


编号:QA000560
建立日期: 1999年2月28日 最后修改日期:2001年4月10日
所属类别:

CoolChen:
    操作系统:中文版 Windows98
    编程工具:中文版 Visual Basic 5.0
    请问:
    我想用 PictureBox 做一个 ActiveX 控件,是一个按钮,可是按钮总要涉及到鼠标点击事件吧,结果快速地连续点击时 Click 事件的响应好象并不连续。我用下面这段程序示范了这个过程:
    新建一个 Form,放一个 PictureBox 控件,然后在 Form 中粘贴如下代码:
    Option Explicit
    
    Private Sub Form_Load()
     Picture1.BackColor = QBColor(0)
    End Sub
    
    ' 用 Mouse_Down、Mouse_Up 事件我也试过,效果都一样。
    Private Sub Picture1_Click()
     Static N As Long
    
     N = -(N = 0)
     Picture1.BackColor = QBColor(N)
    End Sub
    你会发现当连续、快速地点击 PictureBox 时,它的颜色不会同步迅速地改变。但是有一点很奇怪,当你用左右键交替地迅速点击时,PictureBox 的响应就很快。

回答:

    我试了一下,有你说的问题。我估计是因为你的点击太快了,而VB的相应的过程执行的时间比你点击间隔要长。至于你左右键点击时,认为响应快可能是错觉,因为左右键点击通常比连续点击慢(你的手的缘故),实际情况差不多。
    
    叮叮当当的意见:
    实际上是这样的:Windows由于要区分鼠标单击和双击,对于一次鼠标点击并不马上判为单击,而是等待一定的时间后,如果没有另一次点击发生,才判为一次有效的单击。如果在这段时间里又发生了一次或多次点击,则有可能判为双击,发送到Windows消息链中。这个“一定的时间”其实就是在Windows控制面板的鼠标设置中的“双击速度”时间。因此,联系实际,如果你在上述程序中给Picture1_DblClick()事件添加同Picture1_Click()一样的代码,就解决了。

此问题由李海回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio