如何阻止重叠的面板成为彼此的 children?

How to stop overlapping panels to become children of each other?

场景 我有 3 个面板,根据组合框的选择显示。 每个面板都设计在精确的位置,并且所有三个面板彼此完全重叠,甚至可能部分重叠。但是它们的 Top 和 Left 属性是相同的。

问题 一旦我拖动以定位面板,它就会变成其他两个之一的 child。 我已经检查过了。parent.name 如果我隐藏一个面板说 pnlRSB1 那么它的 child pnlRSB2 也会消失。

虽然我已经使用递归循环解决了问题,但我想知道其他可用的选项。

有什么方法可以告诉我 IDE, "hey don't make it child of underlying panel, its independent"?

B.T.W 如果有人想要循环解决方案,我也会提供,但我讨厌递归,尽管我现在正在使用它。

解决办法就是不要拖着他们。只需将所有三个 Panels 添加到表格中的某处即可。拖动其中之一,使其 LocationSize 成为您想要的,然后通过属性 window.

将另外两个设置为具有相同的值

顺便说一句,如果您将一个 Panel 放到另一个的范围内,它只会成为另一个的 child。 parent 将是您放下时鼠标指针下的任何控件。

另请注意,您仍然可以轻松访问设计器中的每个 Panel,即使它们位于相同的 Location 中并且具有相同的 Size。您只需要更改 z-order 以便您要访问的那个位于最前面。有多种方法可以做到这一点。

  1. Right-click上Panel可以看到selectSend to Back。重复直到你要访问的Panel在前面。
  2. 在顶部的 drop-down 列表中打开您想要访问的 window 和 select Panel 属性。即使 Panel 本身被遮挡,这也会在 Panel 周围绘制一个 selection 矩形。 Right-click selection 矩形和 select Bring to Front.
  3. 打开文档大纲 window,然后将要访问的 Panel 拖动到树中其他文件的上方,或者 select 并使用工具栏将其向上移动. child 控件在树中的顺序与 z-order.
  4. 相匹配