我有一个带有Toolstrip
和Datagridview
的Winforms应用。
我试图根据此处的一些信息在MouseWheeling
上实施ToolStripMenuItems
:
我已向Mousewheel
添加了DataGridView
个事件,因为在基本表单中添加一个事件并未触发。我的问题是我无法找到一种方法来检测鼠标光标何时位于打开的ToolstripMenu
之上,它总是说它超过了DataGridView
。
我尝试了几种不同的方法,包括当前的代码:
Public Shared Function FindControlAtPoint(container As Control, pos As Point) As Control
Dim child As Control
For Each c As Control In container.Controls
If c.Visible AndAlso c.Bounds.Contains(pos) Then
child = FindControlAtPoint(c, New Point(pos.X - c.Left, pos.Y - c.Top))
If child Is Nothing Then
Return c
Else
Return child
End If
End If
Next
Return Nothing
End Function
Public Shared Function FindControlAtCursor(form As Form) As Control
Dim pos As Point = Cursor.Position
If form.Bounds.Contains(pos) Then
Return FindControlAtPoint(form, form.PointToClient(Cursor.Position))
End If
Return Nothing
End Function