MouseLeave事件有两个面板

时间:2013-03-12 18:17:02

标签: .net vb.net visual-studio

我有2个面板(Panel1Panel2Panel2位于Panel1

我的代码:

Private Sub Panel1_MouseLeave(sender As Object, e As EventArgs) Handles Panel1.MouseLeave
    MsgBox("Leave")
End Sub

当我的鼠标进入MsgBox时弹出Panel2

这不符合逻辑,因为我的鼠标仍然包含在Panel1区域内。

出于事件目的,如何将Panel2视为与Panel1相同的区域?

1 个答案:

答案 0 :(得分:2)

考虑下图,

enter image description here

假设上面的图片代表两个混凝土板(Two panels)一个放在另一个上面(浅灰色:panel1,深灰色:panel2)。

你是被要求站在浅灰色板坯1号位置的人(Cursor),你会做什么,  首先,你将进入浅灰色的平板。[panel1.mouseEnter event got fired],最后你将到达位置1.同样,你再次要求站在暗灰色板坯的第2位, 这次你会做什么,你会留下浅灰色的板[panel1.mouseLeave event got fired],然后你会进入深灰色的板[panel2.mouseEnter event got fired]。  你注意到了吗。?你留下了浅灰色的板坯,以便进入深灰色的板坯。

同样,在form内,特别是在controls的筹码中,One Control的Mouse Enter应该是之前控件的Mouse Leave