ContextMenuStrip不会根据鼠标移动突出显示项目

时间:2010-06-22 20:00:19

标签: vb.net winforms .net-2.0 user-interface contextmenustrip

我有一个ContextMenuStrip,我以编程方式显示以响应单击的按钮。一切都按预期工作,除了菜单中的项目没有响应被鼠标悬停。无论鼠标按钮是向上还是向下,鼠标悬停在菜单上都没有明显的效果,释放鼠标按钮不会按预期选择项目。但是,对项目执行完整单击仍会激活项目。

这是我显示ContextMenuStrip的代码:

Protected Overrides Sub OnMouseDown(ByVal e As System.Windows.Forms.MouseEventArgs)
  MyBase.OnMouseDown(e)
  If Enabled Then
    m_MouseDown = True
    If m_State > ButtonState.MousePressed Then
      m_State = ButtonState.MousePressed
    End If
    Invalidate()
    If DropDown IsNot Nothing AndAlso DropDown.Items.Count > 0 Then
      If ShowMenu Then
        ShowMenu = False
      ElseIf arrowRect.Contains(PointToClient(MousePosition)) Then
        ShowMenu = True
        m_MouseHeldWhileOpened = True
        DropDown.Capture = True
      End If
    End If
  End If
End Sub

Protected Property ShowMenu() As Boolean
  Get
    Return m_showMenu
  End Get
  Set(ByVal value As Boolean)
    If value <> m_showMenu Then
      m_ShowMenu = value
      If m_ShowMenu Then
        m_DropDown.Show(Me, GetDropDownSpawnPoint, DropDownDirection)
        m_State = ButtonState.MenuUp
        If m_DropDown.ClientRectangle.Contains(PointToScreen(MousePosition)) Then
          m_DropDown.Capture = True
        End If
      Else
        m_DropDown.Close()
        ElevateState()
      End If
    End If
  End Set
End Property

我尝试了许多不同的想法让菜单正确响应,其中一些尝试在这里的代码中仍然很明显。如果有任何帮助即将到来,我们将不胜感激 - Google上没有其他人似乎遇到过这个问题。

提前感谢您提供任何帮助。

0 个答案:

没有答案