2009-11-28 147 views
1

我有MDI子窗體的開始位置這個奇怪的問題。 這是我的開始位置的代碼,我想它是MDI父窗體 的中間左側。MDI子窗體開始位置問題

 //show the task bar 
     ChildForm c1 = new ChildForm(); 

     c1.MdiParent = this; 
     c1.StartPosition = FormStartPosition.Manual; 
     c1.Location = new Point(0, this.Height/2); 

奇怪的是每次我開始我的MDI父窗體時,垂直滾動條顯示 和MDI子窗體比MDI父窗體的高度的一半更低的位置。 然後,如果向下滾動滾動條以查看整個mdi子窗體,則滾動條消失。

此後,無論我如何更改mdi父窗體的大小,滾動條將不會再顯示 。

有沒有人知道爲什麼?

此外,我想知道是否有可能隱藏一個mdi子窗體只有一個類似於控件的控件在mdi父窗體中留下了 。如果用戶點擊該句柄,則表單再次顯示。如果用戶 點擊其他地方,窗體隱藏。它有點像Window任務欄。

我試圖使用form.hide(),但它隱藏了整個mdi子窗體。

感謝

亞歷

+2

你可以考慮正確的問題的一票! :-) – PSyLoCKe

回答

3

是可能是你的計算是考慮到頂部的窗欄。

你可以看看PointToClientPointToScreen

+0

是的,使用PointToClient解決了這個問題。 謝謝 – alex

+0

是否有人知道我的第二個問題的答案? – alex

+0

經過多次試驗後,滾動條再次出現,這一次,不僅是垂直的,有時候,水平的也會出現。 – alex

1

你sholud minuse子窗體的高度和寬度這樣

c1.Location = new Point(0, (this.Height - c1.Height)/2);