用户控件中的Click事件,该如何解决
用户控件中的Click事件
用户控件窗体中放两个控件一个是图片Picture1和Label1控件,当鼠标点击Picture1或Label1中执行Click()事件

运行后第一次鼠标点击到Label1控件上无效没有执行ClicK事件,再连续点击第二次才会执行有效。这是什么原因?
------解决方案--------------------
不对啊,我测试了,无论是否屏蔽,点击都正常反应。会不会你还有藏匿的代码“忘记”贴上来?
------解决方案--------------------
你的那个 Picture1_MouseMove() 中去 SetCapture 确实造成影响。
我建议你这样改一下,基本上,这样的效果还是跟 Picture1_Click() 一样。
并且还没那种“直接移到Label上第一次点击没反应”的问题。
------解决方案--------------------
没有出现LZ说的问题,如果LZ的代码确实有问题,那肯定是出现在
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If 0 <= X And X <= Picture1.Width And 0 <= Y And Y <= Picture1.Height Then SetCapture Picture1.hwnd If Val(ys) < 1 Then ys = Val(ys) + 1 '鼠标移出 End If Else ReleaseCapture '鼠标移入 ys = 0 End IfEnd Sub
上,lz可以判断是否进入或离开Picture1的时候,加入边缘保证,即
If dx <= X And X <= Picture1.Width-dx*2.... 以确保能ReleaseCapture
用户控件窗体中放两个控件一个是图片Picture1和Label1控件,当鼠标点击Picture1或Label1中执行Click()事件
'事件声明:鼠标点击事件
Public Event Click()
Private Sub Label1_Click()
RaiseEvent Click
End Sub
Private Sub Picture1_Click()
RaiseEvent Click
End Sub
运行后第一次鼠标点击到Label1控件上无效没有执行ClicK事件,再连续点击第二次才会执行有效。这是什么原因?
用户控件中的Click事件
------解决方案--------------------
不对啊,我测试了,无论是否屏蔽,点击都正常反应。会不会你还有藏匿的代码“忘记”贴上来?
------解决方案--------------------
你的那个 Picture1_MouseMove() 中去 SetCapture 确实造成影响。
我建议你这样改一下,基本上,这样的效果还是跟 Picture1_Click() 一样。
并且还没那种“直接移到Label上第一次点击没反应”的问题。
'Private Sub Picture1_Click()
' RaiseEvent Click
'End Sub
'
Private Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If (Button = 1) Then RaiseEvent Click
End Sub
------解决方案--------------------
没有出现LZ说的问题,如果LZ的代码确实有问题,那肯定是出现在
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If 0 <= X And X <= Picture1.Width And 0 <= Y And Y <= Picture1.Height Then SetCapture Picture1.hwnd If Val(ys) < 1 Then ys = Val(ys) + 1 '鼠标移出 End If Else ReleaseCapture '鼠标移入 ys = 0 End IfEnd Sub
上,lz可以判断是否进入或离开Picture1的时候,加入边缘保证,即
If dx <= X And X <= Picture1.Width-dx*2.... 以确保能ReleaseCapture