Tak jsem trochu hledal na webu a zjistil, že toto je známý a ohlášený bug, řešení je celkem jednoduché, v jedné události stačí akci zrušit, pokud je rodičovský prvek zašedlý. Neměl by být problém podědit si MenuStripItem tak, aby tohle chování měla v sobě.
Public Class Form1
Sub New()
' This call is required by the Windows Form Designer.
InitializeComponent()
' Add any initialization after the InitializeComponent() call.
AddHandler ItemDisabledToolStripMenuItem.DropDown.Opening, AddressOf DropDownOpening
End Sub
Private Sub DropDownOpening(ByVal sender As Object, ByVal e As
System.ComponentModel.CancelEventArgs)
Dim tsdd As ToolStripDropDown = CType(sender, ToolStripDropDown)
If (Not (tsdd Is Nothing) And Not (tsdd.OwnerItem Is Nothing)) Then
e.Cancel = Not tsdd.OwnerItem.Enabled
End If
End Sub
End Class
|