2015-01-26 94 views
0

我的工作具有以下結構的C#應用​​程序的UI:.NET - 正確的UI結構

主窗體(MDI父)

  • 樹視圖
  • 多個MDI Childdren,每個含:
    • 自定義用戶控制

我想分離窗體的分配給樹視圖的畫布空間和允許MDI Children移動的窗體空間。爲此,我嘗試了SplitContainer並將MDI Child的TopLevel字段設置爲'false',但除了新創建的MDI兒童是在舊的MDI兒童之後創建的,我也遇到了問題,他們沒有從屏幕和其他奇怪的問題中清除。

由於我在C#中沒有很多用戶界面的經驗,我正在採用的路徑是否正確?更改上述結構以便它不再使用MDI,還是有更簡單的方式將樹視圖和MDI之間的畫布分開,而不是SplitContainer?

乾杯,亞歷克斯


UPDATE:其實,解決方案似乎相當不錯的工作,謝謝!我可能會通過放置一個簡單的檢查來阻止小部件在錯誤的地方移動。

除此之外,有沒有什麼方法可以使TreeView在不涉及SplitContainer的情況下調整大小(因爲後面提到的原因)?

+0

出於好奇,爲什麼MDI?這是一種過時和有缺陷的UI概念。你是否考慮過tabbed文檔? – Dai 2015-01-26 18:05:39

+0

MDI是從之前繼承而來的。基本上,我只需要一個可移動的容器用於我的自定義用戶控件。 – alexx88 2015-01-26 18:16:27

回答

0

添加面板到您的主要形式和碼頭它的。現在將您的TreeView添加到面板。根據需要調整面板大小。現在你的MdiChildren將佔用面板右側的空白空間...

*你實際上可以簡單地將TreeView自身停靠到窗體的左側,但面板方法允許你放置其他控件在那個左側區域也是如此。取決於你的用戶界面佈局。