请问:在mousedown时,连续触发此事件,直到mouseup, 怎么实现?

时间:2022-01-05 12:29:10
我们在做数据库时,经常做一些按钮,点击它上一条记录或下一条记录.如果我们要做成当mousedown时连续上一条记录,上一条记录,直到mouseup时才停止,应该怎样实现,谁有很简单的办法.

11 个解决方案

#1


怎么没有人来回答我的问题呢?

#2


mousedown时,执行记录的Move,move一个以后,判断当前mouse的button是否是down,如果是,继续Move

#3


用计时器实现,mousedown时启动计时器,计时器事件中连续上一条记录,mouseup时停止计时器。

#4


你们说的这些我也知道啊!我想问的是有没有这种api可以实现/

#5


你们说的这些我也知道啊!我想问的是有没有这种api可以实现/

#6


这种问题没有api的

#7


不要使用按钮的Mouse_down事件,应该使用Scrollbar的change事件,那里mouse_down时会重复发生。特别是需要两态(增大、减少)时。

#8



在按钮的Mouse_down事件中用timer控制循环movenext

#9


mouse_event 

VB声明 
Declare Sub mouse_event Lib "user32" Alias "mouse_event" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long) 
说明 
模拟一次鼠标事件 
参数表 
参数 类型及说明 
dwFlags Long,下述标志的一个组合 
MOUSEEVENTF_ABSOLUTE dx和dy指定鼠标坐标系统中的一个绝对位置。在鼠标坐标系统中,屏幕在水平和垂直方向上均匀分割成65535×65535个单元 
MOUSEEVENTF_MOVE 移动鼠标 
MOUSEEVENTF_LEFTDOWN 模拟鼠标左键按下 
MOUSEEVENTF_LEFTUP 模拟鼠标左键抬起 
MOUSEEVENTF_RIGHTDOWN 模拟鼠标右键按下 
MOUSEEVENTF_RIGHTUP 模拟鼠标右键按下 
MOUSEEVENTF_MIDDLEDOWN 模拟鼠标中键按下 
MOUSEEVENTF_MIDDLEUP 模拟鼠标中键按下 
dx Long,根据是否指定了MOUSEEVENTF_ABSOLUTE标志,指定水平方向的绝对位置或相对运动 
dy Long,根据是否指定了MOUSEEVENTF_ABSOLUTE标志,指定垂直方向的绝对位置或相对运动 
cButtons Long,未使用 
dwExtraInfo Long,通常未用的一个值。用GetMessageExtraInfo函数可取得这个值。可用的值取决于特定的驱动程序 
注解 
进行相对运动的时候,由SystemParametersInfo函数规定的系统鼠标轨迹速度会应用于鼠标运行的速度
 

#10


No.1:定义一个窗体级变量:Dim blnMouseUp As Boolean
No.2:在Mouse_Up中写 blnMouseUp=True
No.3:在Mouse_Down中写:
  Do While Not blnMouseUp
    rs.MovePrevious
    ..显示..
    DoEvents    '处理外部内容
  Loop
  blnMouseUp=False

#11


做一个记时器 mousedown 启动 mouseup 关闭

#1


怎么没有人来回答我的问题呢?

#2


mousedown时,执行记录的Move,move一个以后,判断当前mouse的button是否是down,如果是,继续Move

#3


用计时器实现,mousedown时启动计时器,计时器事件中连续上一条记录,mouseup时停止计时器。

#4


你们说的这些我也知道啊!我想问的是有没有这种api可以实现/

#5


你们说的这些我也知道啊!我想问的是有没有这种api可以实现/

#6


这种问题没有api的

#7


不要使用按钮的Mouse_down事件,应该使用Scrollbar的change事件,那里mouse_down时会重复发生。特别是需要两态(增大、减少)时。

#8



在按钮的Mouse_down事件中用timer控制循环movenext

#9


mouse_event 

VB声明 
Declare Sub mouse_event Lib "user32" Alias "mouse_event" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long) 
说明 
模拟一次鼠标事件 
参数表 
参数 类型及说明 
dwFlags Long,下述标志的一个组合 
MOUSEEVENTF_ABSOLUTE dx和dy指定鼠标坐标系统中的一个绝对位置。在鼠标坐标系统中,屏幕在水平和垂直方向上均匀分割成65535×65535个单元 
MOUSEEVENTF_MOVE 移动鼠标 
MOUSEEVENTF_LEFTDOWN 模拟鼠标左键按下 
MOUSEEVENTF_LEFTUP 模拟鼠标左键抬起 
MOUSEEVENTF_RIGHTDOWN 模拟鼠标右键按下 
MOUSEEVENTF_RIGHTUP 模拟鼠标右键按下 
MOUSEEVENTF_MIDDLEDOWN 模拟鼠标中键按下 
MOUSEEVENTF_MIDDLEUP 模拟鼠标中键按下 
dx Long,根据是否指定了MOUSEEVENTF_ABSOLUTE标志,指定水平方向的绝对位置或相对运动 
dy Long,根据是否指定了MOUSEEVENTF_ABSOLUTE标志,指定垂直方向的绝对位置或相对运动 
cButtons Long,未使用 
dwExtraInfo Long,通常未用的一个值。用GetMessageExtraInfo函数可取得这个值。可用的值取决于特定的驱动程序 
注解 
进行相对运动的时候,由SystemParametersInfo函数规定的系统鼠标轨迹速度会应用于鼠标运行的速度
 

#10


No.1:定义一个窗体级变量:Dim blnMouseUp As Boolean
No.2:在Mouse_Up中写 blnMouseUp=True
No.3:在Mouse_Down中写:
  Do While Not blnMouseUp
    rs.MovePrevious
    ..显示..
    DoEvents    '处理外部内容
  Loop
  blnMouseUp=False

#11


做一个记时器 mousedown 启动 mouseup 关闭