我有一個MDI應用程序。我有一個標記爲「Window」的ToolStripMenuItem
,它被設置爲我的主要MenuStrip
的MdiWindowListItem
。窗口菜單有幾個項目,例如「級聯」和「排列圖標」。MdiWindowListItem在沒有子窗口打開時的額外分隔符
當我運行我的應用程序時,窗口菜單結束整齊地與我的「排列圖標」項目。正如所料,當我打開一個或多個MDI子窗體時,它們會自動附加在ToolStripSeparator
之後。當我關閉所有的子窗體時,它們會按照預期從「窗口」菜單中消失,但仍保留ToolStripSeparator
。我希望菜單能夠回到原來的狀態,即沒有分隔符。
就目前而言,分隔符會自動添加,但不會自動刪除。當然,我可以嘗試以編程方式消除額外的分隔符,但我沒有看到其他人抱怨這一點,這讓我懷疑它可能發生,因爲我做錯了什麼。請指教。
完成工作,但標準行爲仍然困擾着我。該菜單自動添加子表單,並再次刪除它們。它會自動添加分隔符,但不會將其刪除。邏輯在哪裏? – Stephan
順便說一句,爲什麼在這裏需要使用BeginInvoke?我試着直接設置'ts.Visible'的值,並且它不能正常工作。是否等待表單更新其子表? – Stephan
@Stephan在最後一個子表單關閉之後,* MdiChildren.Count將不爲零。在封閉事件中,子表單還沒有完全消失。 'BeginInvoke'是告訴程序在當前過程之後運行一段代碼的簡單方法。 – LarsTech