系统提供的控件 如按钮 无论你手点击速度有多快,都能跟上反映速度,但我自己做的按钮快速点 2-3次才能反映,无论控件代码有多简单处理速度有多快都是这样,请教大家这是为什么?

解决方案 »

  1.   

    呵呵。 因为自己做的控件,实质无非是个image或者picturebox,来回换那几张图。
    而系统的按钮,其实质就是个button按钮窗口。
    /*  windows消息系统对这些有点区别,image和picture天生不是用来被人点的,是用来被人看的,所以鼠标事件优先级比较低,而button,checkbox等专门就是被人点的,所以他们的鼠标事件优先级比较高。一般情况感觉不出差别,但是鼠标点击速度很快的时候就可以感觉出来了。  */所以要改变这个状况,只有从根本入手:换掉图片控件,用button控件来做!ps :/*...*/部分是个人的推测结论,仅供参考。
      

  2.   

    //尝试将鼠标双击事件也用单击事件的方法处理就会快了
    个人认为这个是正确的。原因是这样的,我们都知道在windows中设置了一个时间间隔用来区分连续的鼠标点击是否为双击事件。也就是说楼主所说的快速点击,实际上windows把第二次点击理解为双击了,即使不是VB(windows消息系统)也会将其解释为双击消息,因此你在单击事件中的代码不能在双击事件中反映出来。