2013-10-24 192 views
0

想到的是我想在鼠標光標位置顯示FlowLayoutPanel。但是隨着我的代碼咆哮,它只能跳到我的表單的中心。我在DataGridView.CellMouseEnter事件上觸發它。請求一些建議,謝謝。將控件移動到光標位置?

Private Sub dgw_CellMouseEnter(sender As Object, e As DataGridViewCellEventArgs) Handles dgw.CellMouseEnter 

    FlowLayoutPane1.Location = Cursor.Position 
    FlowLayoutPane1.Visible = True 

End Sub 
+0

Cursor.Position在屏幕座標中。您需要改爲使用FlowLayoutPane1.Parent.PointToClient(Cursor.Position)。你*真正需要的可能性爲零,當用戶使用鍵盤操作網格時,它仍然是一個完全隨機的位置。 –

回答

0

使用MouseMove而不是MouseEnter事件。 MouseEnter僅當調用時纔會調用
請注意,即使鼠標位置可能在控件之外,也會觸發MouseMove事件。

+0

我意識到這一點,但它會觸發我輸入的每個細胞或?但是這仍然沒有改變,我的FlowLayoutPane的產卵位置仍然存在問題。它仍然出現在窗體的中心,甚至不接近我的鼠標光標......? – Dave

+1

@Dave:對不起,我誤解了你的問題。如果你正在談論定位,你需要知道鼠標的位置總是在屏幕座標中。因此,您可以使用[PointToClient](http://msdn.microsoft.com/zh-cn/library/system.windows.forms.control.pointtoclient.aspx)函數來計算表單座標。 – joe

+0

完美運作。謝謝你,小夥伴。 – Dave