注册 登录
编程论坛 VB.NET论坛

窗体上布满了控件,如何响应鼠标事件

zhangcanwei 发布于 2016-05-13 16:25, 5196 次点击
窗体上布满了控件,想做个程序,当鼠标离开窗体后,执行一段代码。
 问题是,窗体的鼠标离开事件不起作用了。总不能对每个控件都进行编程吧
9 回复
#2
风吹过b2016-05-13 16:59
设置窗体任何时候都接收鼠标移动消息,收到鼠标移动消息后,计算是不是不在本窗体范围之内,如果不是,则说明鼠标离开了。再处理 吧。
今天刚学 ,代码写不出。
#3
xiangyue05102016-05-16 15:53
回复 2楼 风吹过b
你怎么也过来了,VB板块可都靠你撑着呢
#4
风吹过b2016-05-17 08:44
也想过来逛逛。
,还看不太懂。目前还没去找书。想找个题目练练手,又觉得太简单的没意思,复杂的又做不了。矛盾中。
#5
xiangyue05102016-05-17 20:57
回复 4楼 风吹过b
我觉得net还是容易一点,现在VB要不是还经常用VBA估计差不多都忘记了
#6
不说也罢2016-05-18 12:39
以下是引用zhangcanwei在2016-5-13 16:25:54的发言:

窗体上布满了控件,想做个程序,当鼠标离开窗体后,执行一段代码。
 问题是,窗体的鼠标离开事件不起作用了。总不能对每个控件都进行编程吧


如果你不想对每个控件都写代码,那么可以加一个定时器Timer1,将其Enabled属性设为True,在其Tick事件中判断鼠标是否离开的窗体。
你参考下。

程序代码:


 If Cursor.Position.X<Me.Left Or Cursor.Position.X>Me.Left+Me.Width Or Cursor.Position.Y<Me.Top Or Cursor.Position.Y>Me.Top+Me.Height Then

    Msgbox("鼠标离开了窗体")   


 End If
#7
zhangcanwei2016-05-28 16:04
回复 6楼 不说也罢
谢谢回复。
不知道时钟控件会不会消耗很多的系统资源?
#8
zhangcanwei2016-05-28 16:06
回复 2楼 风吹过b
怎样设置才能让窗体一直能够接收鼠标移动的消息呢
#9
不说也罢2016-05-28 17:51
如果担心消耗系统资源,可以委托另一个线程做这件事。.NET有backgroundworker控件,可供你解决问题。
#10
zhangcanwei2016-05-30 10:54
回复 9楼 不说也罢
十分感谢!我还没注意到有这么个控件,一直都是直接使用线程类的。
这个控件的确方便多了。
1