2009-09-28 59 views
2

我想設置我的WinForm看起來像Delphi7 IDE。基本上這意味着窗口沒有背景(桌面通過顯示),並且子窗口浮動。WinForms浮動窗口(如Delphi7 IDE)

下面是一個示例圖像: alt text http://www.builder.cz/images/delphi7-screenshot-big.png

我能處理的浮動窗口,但我將如何去主窗口(菜單欄和工具欄)?獲得此佈局所需的WinForm屬性是什麼?我似乎無法擺脫窗戶的客戶區域。

謝謝

回答

6

爲什麼你不能擺脫客戶區?調整主表格的大小,使其儘可能薄。

您可能會在主窗體的控件集合中實現浮動窗口作爲UserControls。如果是這樣,你可以通過兩種方式來處理:

  1. 將浮動窗口實現爲實際窗口。使用「frmToolWindows.Show(this)」顯示它們;「 (這將使他們始終位於主表格的頂部)。
  2. 如果您需要將浮動視圖保留爲UserControls,您可以通過將窗體的TransparencyKey屬性設置爲某種任意顏色(例如Color.Red),然後將窗體的BackColor屬性設置爲相同的顏色。這將使您的表單透明並且可以點擊。
+1

謝謝。通過調整主窗體大小來擺脫客戶區域的確是實現這一目標的方法,但是,這還有其他一些細節。當您調整窗口大小時,您可以再次暴露客戶端區域,並且當您最大化窗口時,它將佔用整個屏幕,並且客戶端區域將隱藏桌面。 上述兩個問題的解決方案是處理WM_SIZING和WM_GETMINMAXINFO消息並根據需要限制高度。 關於浮動窗口,我討厭第二個選項,因爲它增加了不必要的負擔。你的第一個選擇是一個好的選擇。謝謝你的幫助。 –

+0

您並不一定要將其他窗口始終放在主窗口的頂部。主窗口的工具欄很難訪問。 –

-4

請不要製作這樣的用戶界面。這是非常不規範的,在可用性領域沒有獲得任何東西。您可以通過將其全部保存在Visual Studio一個窗口中來簡化這些操作。

+0

反對意見是因爲問題不是「我應該像這樣做我的用戶界面嗎?」另外,我實際上更喜歡在我的筆記本電腦上使用這種IDE風格(從我的Visual Basic時代開始),因爲當前的Visual Studio佈局需要大型顯示器才能最有效。 – MusiGenesis

+0

如果它增加了軟件的整體可用性,我可以處理一個反對票。 –

+4

@John:不幸的是,它並沒有增加軟件的可用性,將所有內容都限制在單個主窗口的客戶區域。詢問任何有多臺顯示器的用戶對他們的感受。多年來,Visual Studio用戶確實希望獲得更好的多顯示器支持。 – mghie