我有mdiparent窗體,它具有包含treeview的左側菜單和麪板。父窗體的剩餘空間可以包括多個窗口,具體取決於用戶他想打開它多少個窗口。在面板邊緣有一個分割器[左邊有樹視圖的分割器],可以增加或減少面板的寬度,從而增加圖表的面積。自動調整mdiparent中的多個子窗體,面板和mdi C#
我曾嘗試在分離器移動事件處理程序中使用mdilayout,但它不起作用。
first pic http://www.imageurlhost.com/images/x6pf89yp8x4cnm1hb4x_first.png
紅色垂直線是增加/減少在左側面板的寬度的分離器。 最初,右側沒有空間。打開一個新的兒童窗戶適合剩下的空間。
2 http://www.imageurlhost.com/images/b1pu4lztl7eel12b1ho_second.png
分離器移動到左邊。右側有一個空格,子窗體不會調整大小並適合該區域。
3 http://www.imageurlhost.com/images/f9ep8rd4fem5aynhc9z_third.png
分配器移動更向左側和空間上的權利不斷增加。 如果我再打開一張圖,然後再打開4張舊圖和1張新圖,總共5張圖完全吻合良好,空間將被利用。如果我再次移動分離器,那麼右側的空間將再次被引入。
4 http://www.imageurlhost.com/images/e3fup4nrfb7aj7d13e5_four.png
我怎樣才能讓所有的孩子形式,正確配合剩餘空間,每次分離器動作?
Splitter move/mouseup事件處理程序中的代碼。
this.LayoutMdi(MdiLayout.TileHorizontal);
子窗體[圖形視窗]具有
this.StartPosition = System.Windows.Forms.FormStartPosition.Manual;
父窗體[這是在圖象]
this.leftpanel.Dock = System.Windows.Forms.DockStyle.Left;
this.leftpanel.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink;
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Inherit;
this.AutoSize = true;
如果母體形式被調整大小然後調整事件處理程序也
this.LayoutMdi(MdiLayout.TileHorizontal);
這似乎運作良好。如果我最大化/自定義父級表單,子表單會相應調整大小。
如果我對splitter eventhandlers使用相同的東西,它不會以相同的方式工作。
謝謝,
我想你移動分離器的速度越快,獲得的空間就越多。你的代碼有問題,我們看不到它。 –
我編輯了這篇文章!是的,我移動得越快,我得到的空間就越多。如果我慢慢地移動它,我將獲得更少的空間。這是一種隨機的行爲,我相信或者我不理解爲什麼快和慢將表現不同的邏輯。 –