2013-03-12 56 views
3

我有2個面板(Panel1Panel2)與Panel2放置Panel1鼠標離開事件有了兩個面板

我的代碼裏面:

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

MsgBox彈出,當我的鼠標走了進去Panel2

這不合邏輯,因爲我的鼠標仍然包含在Panel1的區域。

出於事件目的,Panel2Panel1應該如何被視爲相同的區域?

+0

或這個爲此事http://stackoverflow.com/questions/1161280/parent-control-mouse-enter-leave-events-with-child-controls 雖然,答案中的代碼'缺乏工作部分。 – Gman 2013-03-12 19:25:26

回答

2

考慮以下圖中,

enter image description here

假設上面的照片是代表兩個混凝土板(Two panels)一個放置在另一個之上(淺灰色:panel1,深灰色:panel2)。

您是(Cursor)問淺灰色石板地站起來在位置1的人時,你會做什麼, 首先,你將進入淺灰色石板。[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

+0

不完全如此。您可以(非常快速,以編程方式,使用筆在屏幕上方用筆輸入懸停)將鼠標右移到*位置2,因此根本不會有任何'panel1'事件。 – Gman 2013-03-12 19:40:36

+1

@Gman你是對的,這是一個已知的問題。但OP的要求是要知道,'爲什麼要調用Panel1的離開事件,仍然是鼠標的內部。順便說一下,我認爲他需要一個合乎邏輯的答案。 :) – 2013-03-12 20:20:13

相關問題