【发布时间】:2014-02-18 07:14:38
【问题描述】:
我正在尝试编写一个显示一系列七个图片框(指令、黑色背景、图像、黑色背景等)的程序,并且该系列由鼠标中键(滚轮)上的 mousedown 事件开始) 在第一个图片框上。对于前四个图片框,这个人必须将手指放在方向盘上,也许直到第七个。图片框填满屏幕。从盒子到盒子的转换由 winmm.dll 中的 timeGetTime 控制。 我很高兴地说,程序的序列部分运行良好。
但是,我有两个问题
- 我需要能够停止运行 picBox 并返回到 如果中间 mouseup 发生在第五个之前,则第一个 picBox 图片框。
- 我需要记录鼠标抬起事件的时间 它发生在第五、第六或第七个盒子里。
然后该人按下鼠标左键或右键,这可以正常工作。 一个主要问题似乎是 mouseup 事件不起作用,但它在程序稍后会在用户将手指放在左键或右键上并让它再次单击时起作用。
在上一个子程序中的序列之后,我将其分为序列A(picboxes 1-4)和sequenceB(picboxes 5-7)。我已经放了:
Private Property sequenceA As Boolean
Private Property sequenceB As Boolean
Private Sub picBox2_mouseup(ByVal sender As Object, ByVal e As MouseEventArgs) Handles picBox2.MouseUp
If MouseButtons.Middle Then
If sequenceA = True Then
picBox1.Visible = True
sequenceB = False
sequenceA = False
End If
End If
End Sub
我已经尝试了好几天了!上面的这段代码,如果有效,只会告诉我鼠标是否在 picBox2 上上升,但我需要知道 picbox 2-4。
【问题讨论】:
-
TL;DR 但您将需要一个或多个模块级变量来跟踪鼠标更改的时间。如果图片框没有填满表单,您还必须监视表单的鼠标事件。
-
如果你的 mousedown 没有在 picBox2 上发生,你将无法在 picBox2 上处理 mouseup 等。为什么不使用单个 PictureBox 并更改图片?
-
@DanVerdolino:您实际上可以做到这一点。看我的回答。
标签: vb.net events picturebox mouseup