鼠标滚动时,试图判断鼠标是否已打开工具栏或上下文菜单项

时间:2014-02-26 14:18:16

标签: .net vb.net winforms toolstripmenu

我有一个带有ToolstripDatagridview的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

1 Mouse wheel scrolling Toolstrip menu items

0 个答案:

没有答案