[求助]如何让鼠标在Form1切换到Form2后,再关闭Form2,就算鼠标位置改变,也不触发Form1的鼠标移动事件?

时间:2023-02-11 22:34:16
[求助]如何让鼠标在Form1切换到Form2后,再关闭Form2,就算鼠标位置改变,也不触发Form1的鼠标移动事件?
Form1切换到Form2后,原来在Form1的鼠标位置改变了,当Form1重新获得鼠标的时候,就会立刻触发鼠标移动事件了,但是我不希望这样,应该如何处理?
测试的时候:
1.在Form1,用Esc键显示Form2.或用按钮显示Form2.或用鼠标移动一个较大的距离显示Form2.
2.在Form2用鼠标点按钮(相当于移动一个较大的距离后,关闭Form2).
3.就会发现问题,Form2会再打开一次,要再点一次Form2的按钮,才把Form2关闭.

程序文件地址:
http://66056.24286.84g.com/veny/vs/发鼠标移动事件问题.rar

6 个解决方案

#1


在Form2用鼠标点按钮时把鼠标的x,y值赋给FORM1

#2


本帖最后由 bcrun 于 2013-04-04 19:05:09 编辑
将Static prevX As Integer,Static prevY As Integer改为Public prevX As Integer,Public prevY As Integer放在模块中,在form2中的QueryUnload或者Unload事件加上
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
  prevX = 0
  prevY = 0
End Sub

#3




Private Sub Command1_Click()
Form1.prevX = 0
Form1.prevY = 0
Unload Me
End Sub


Form2的加这两行
Form1把prevX定义为全局变量也就是
Public prevX As Integer
Public prevY As Integer

你看下是你要的效果吗?

#4


谢谢大家的帮忙!
看来,一定要用全局变量了!我先测试一下效果!

#5


这个方法是可行的!
不知道有没有别的方法实现呢?
稍后我再结贴送分!

#6


三天后还没人回复,我就结帖了!

#1


在Form2用鼠标点按钮时把鼠标的x,y值赋给FORM1

#2


本帖最后由 bcrun 于 2013-04-04 19:05:09 编辑
将Static prevX As Integer,Static prevY As Integer改为Public prevX As Integer,Public prevY As Integer放在模块中,在form2中的QueryUnload或者Unload事件加上
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
  prevX = 0
  prevY = 0
End Sub

#3




Private Sub Command1_Click()
Form1.prevX = 0
Form1.prevY = 0
Unload Me
End Sub


Form2的加这两行
Form1把prevX定义为全局变量也就是
Public prevX As Integer
Public prevY As Integer

你看下是你要的效果吗?

#4


谢谢大家的帮忙!
看来,一定要用全局变量了!我先测试一下效果!

#5


这个方法是可行的!
不知道有没有别的方法实现呢?
稍后我再结贴送分!

#6


三天后还没人回复,我就结帖了!