使控件显示在其父级之上

时间:2014-05-12 11:44:25

标签: c# forms

我需要以下问题的帮助: 我有一个面板,里面放了一个组合框和另一个面板。我想要的是将子面板显示在父面板的顶部,就像一个组合框在其父项顶部显示其项目一样。有什么方法可以实现吗?

Panel

1 个答案:

答案 0 :(得分:1)

Combobox是复合控制。它的弹出部分实际上是一个弹出窗口(类似于菜单)。它甚至可以超出你的形式范围。

在您的屏幕截图中:子面板是父级的,因此它将由父边界(或者精确地,通过父客户端区域边界)自动修剪。

要离开父面板,子面板应该是父面板父级的子级(例如,表单),然后,假设子面板的z顺序更大(使用SendToFront()),它将是绘制 over 父面板,并可以达到其父边界的边界。

可以 un-child 控制,将其从父Controls集合中删除并将其添加到其他父集合中,重新计算新的Location(使用{{ 1}} - > PointToScreen()组合,也许甚至还有单一方法)。

如果你认为超出形式界限更像是 combobox 'ish,那么你需要将它实现为弹出窗口(参见例如here)。 / p>