2014-05-12 64 views
1

我需要以下問題的幫助: 我有一個面板,其中放置了一個組合框和另一個面板。我想要的是在父面板頂部顯示子面板,就像組合框顯示其父項頂部的項目一樣。任何方式來實現這一目標?使其控件顯示在其父項頂部

Panel

+0

您是否試過[Control.SendToBack](http://msdn.microsoft.com/en-us/library/system.windows.forms.control.sendtoback%28v=vs.110%29.aspx),[ Control.BringToFront](http://msdn.microsoft.com/en-us/library/system.windows.forms.control.bringtofront%28v=vs.110%29.aspx)?? –

+0

您的意思是孩子的面板較長,應該顯示在另一個面板上?在這種情況下,它應該被添加到主面板的父級(表單?),並放置在正確的Z順序(BringToFront) –

+0

@huMptyduMpty是,這不會改變。 – mrida

回答

1

Combobox是複合控制。其彈出部分實際上是一個彈出窗口窗口(類似於菜單)。它甚至可能超出你的表單的範圍。

在你的屏幕截圖上:子面板是父親的孩子,所以它將自動按父親邊界(或者正好由父親區域邊界)修整。

如要父面板之外,子面板應該是父面板父(至例如,表格),然後,子面板的假定z-次序是更大(使用SendToFront())的子項,它會被過度拉伸父面板,並可以上到其父界的界限。

有可能聯合國兒童控制,由母公司Controls集合中移除它,將它添加到一些其他的父集合,重新計算新Location(使用PointToScreen() - >PointToClient()組合,也許是這甚至單一的方法)。

如果你覺得走形式的邊界外更像組合框「十歲上下,那麼你需要實現它的彈出窗口(看,例如,here)。