У меня есть 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 не сталкивался с этой проблемой.
Заранее благодарю за любую помощь, которую вы можете предложить.