我有一个 MDI 容器表单,以及一些独立更新其标题栏文本的子表单。在子窗体上更改 Text 属性后,在打开菜单时,不会在窗口列表菜单中更新来自子窗体的新标题栏文本。这是 .NET 通过 MdiWindowListItem 属性提供的自动生成的窗口列表。
仅当另一个事件以物理方式更改窗口列表(打开一个新子项、关闭一个子项、切换到另一个子项)时,更改才会传播。
有没有办法以编程方式强制更新窗口列表?我已经有一些代码可以在更改孩子的标题栏文本的同时进行菜单启用/禁用。
我尝试了以下但没有成功:
- 主 MenuStrip 上的 Update()
- 主 MenuStrip 上的 Refresh()
- 窗口 MenuStrip 上的 Invalidate()
- 在运行时对窗口列表项之一进行 Invalidate()
- 在运行时在窗口列表项之一上切换两次检查状态
在菜单项、其父 ToolStrip 或包含菜单系统的父窗体上似乎没有任何其他远程可行的函数可以调用。