diff --git a/System/Windows/Forms/Menu.cs b/System/Windows/Forms/Menu.cs index d7db668..4b528c4 100644 --- a/System/Windows/Forms/Menu.cs +++ b/System/Windows/Forms/Menu.cs @@ -883,6 +883,14 @@ internal virtual void ItemsChanged(int change) { DestroyMenuItems(); } + else if ((uint)change == 4) + { + DestroyMenuItems(); + CreateMenuItems(); + foreach (MenuItem item in MenuItems) { + item.UpdateMenuItem(true); + } + } } private IntPtr MatchKeyToMenuItem(int startItem, char key, MenuItemKeyComparer comparer) diff --git a/System/Windows/Forms/MenuItem.cs b/System/Windows/Forms/MenuItem.cs index 8cbc956..7496695 100644 --- a/System/Windows/Forms/MenuItem.cs +++ b/System/Windows/Forms/MenuItem.cs @@ -155,7 +155,7 @@ internal bool Visible if ((state & 0x10000) == 0 != value) { state = (value ? (state & -65537) : (state | 0x10000)); - ItemsChanged(1); + ItemsChanged(4); } } }