2009-08-28 99 views
2

我有一個MDI容器窗體和一些獨立更新其標題欄文本本身的子窗體。在子窗體上更改了Text屬性之後,當打開菜單時,窗口列表菜單中不會更新子項中的新標題欄文本。這是由.NET通過MdiWindowListItem屬性提供的自動生成的窗口列表。MDI窗口列表不更新子標題欄文本

只有當另一個事件物理改變窗口列表(打開一個新的孩子,關閉一個孩子,切換到另一個孩子)時,更改纔會傳播。

有沒有辦法以編程方式強制更新窗口列表?我已經有一些代碼在做菜單啓用/禁用的同時孩子的標題欄文本被更改。

我嘗試沒有成功如下:

  • 更新()在主要的MenuStrip
  • 刷新()在主要的MenuStrip
  • 的Invalidate()窗口的MenuStrip
  • 的Invalidate上( )在運行時窗口列表項之一
  • 在運行時在一個窗口列表項上切換選中狀態兩次

似乎沒有任何其他遠程可行的函數調用菜單項,其父ToolStrip或包含菜單系統的父窗體。

回答

7

上述解決方案並沒有爲我工作。但我跟着鏈接,發現這個,這是完美的作品:

private void windowMenu_DropDownOpening(object sender, EventArgs e) 
{ 
    if (this.ActiveMdiChild != null) 
    { 
     Form activeChild = this.ActiveMdiChild; 

     ActivateMdiChild(null); 
     ActivateMdiChild(activeChild); 
    } 
}

謝謝!