У меня есть приложение Winforms с Toolstrip
и Datagridview
.
Я пытаюсь реализовать 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
1 Прокрутка колесиком мыши элементов меню панели инструментов