MDI コンテナー フォームと、タイトル バーのテキスト自体を個別に更新するいくつかの子フォームがあります。子フォームで Text プロパティが変更された後、メニューを開いたときに、ウィンドウ リスト メニューで子からの新しいタイトル バー テキストが更新されません。これは、MdiWindowListItem プロパティを介して .NET によって提供される、自動生成されたウィンドウ リストです。
変更は、別のイベントがウィンドウ リストを物理的に変更した場合 (新しい子を開く、子を閉じる、別の子に切り替える) にのみ伝播します。
プログラムでウィンドウ リストを強制的に更新する方法はありますか? 子のタイトルバーのテキストが変更されると同時に、メニューの有効化/無効化を行うコードが既にいくつかあります。
次のことを試しましたが、成功しませんでした:
- メイン MenuStrip の Update()
- メインの MenuStrip の Refresh()
- ウィンドウ MenuStrip の Invalidate()
- 実行時にウィンドウ リスト項目の 1 つで Invalidate()
- 実行時にウィンドウ リスト項目の 1 つで Checked 状態を 2 回切り替える
メニュー項目、その親 ToolStrip、またはメニュー システムを含む親フォームで呼び出す、リモートで実行可能な関数は他にないようです。