2013-04-20 96 views
2

我想移動面板以響應MouseMove事件,但如果鼠標懸停在面板內部的標籤上,則不會觸發此事件。 (如果鼠標位於面板內但位於標籤外部,則觸發它)。有沒有簡單的方法來解決這個問題?MouseMove在包含標籤的面板中

我使用Visual Basic 2010

+0

不是一個.net專家,但在Java中,你會添加聽衆的標籤,或超過低級別事件 – tgkprog 2013-04-20 23:46:52

回答

0

找到一種方式來做到這一點:

Private Sub MyControl_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Click 
    'Something it does when clicked 
End Sub 

Private Sub MyControl_ControlAdded(ByVal sender As Object, ByVal e As System.Windows.Forms.ControlEventArgs) Handles Me.ControlAdded 
    AddHandler e.Control.Click, AddressOf MyControl_Click 
    AddHandler e.Control.ControlAdded, AddressOf MyControl_ControlAdded 
End Sub 

我只需要對MouseOver做同樣的事情。

0

你可以做你自己的類從小組中獲得並使用此http://msdn.microsoft.com/en-us/library/system.windows.forms.control.onmousemove.aspx

Protected Overridable Sub OnMouseMove (e As MouseEventArgs) 

這會給你在面板訪問所有的鼠標移動事件

+0

我已經做到了,仍然無法正常工作。 – user2303304 2013-04-25 22:05:50

+0

被調用的方法是你使用這個面板?添加記錄器?在Java中,你需要啓用這些可以閱讀這個類的文檔嗎? – tgkprog 2013-04-25 22:09:58

+0

只有在鼠標懸停在面板上但位於面板內的標籤之外時,纔會調用override方法。所以我想不需要啓用該方法,但問題依然存在。 – user2303304 2013-04-25 22:52:07