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

时间:2017-12-03 12:32:30

标签: vb.net panel overlap

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

问题 一旦我拖动以定位面板,它就成为另外两个中的一个的孩子。 我通过.parent.name检查了它 如果我隐藏一个小组说pnlRSB1那么它的孩子pnlRSB2也会消失。

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

有没有一种方法我可以告诉IDE,“嘿,不要把它作为底层小组的孩子,它是独立的吗?”

B.T.W如果有人想要循环事物解决方案,我也会提供,但我讨厌递归,虽然我现在和它一起生活。

1 个答案:

答案 0 :(得分:0)

解决方案是不要拖动它们。只需将所有三个Panels添加到表单的某个位置即可。拖动其中一个,使其为LocationSize,然后通过“属性”窗口将其他两个设置为相同的值。

顺便说一句,如果你将Panel放在另一个界限范围内,那么Panel只会成为另一个人的孩子。当您放弃时,父级将是鼠标指针下的任何控件。

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

  1. 右键点击您可以看到的Send to Back,然后选择Panel。重复,直到您要访问的Panel在前面。
  2. 打开“属性”窗口,然后在顶部的下拉列表中选择要访问的Panel。即使Panel本身被遮挡,这也会在Bring to Front周围绘制一个选择矩形。右键单击选择矩形,然后选择Panel
  3. 打开“文档大纲”窗口,然后将要访问的<?php require '/root.php'; ?>拖到树中其他位置上方或选择它,然后使用工具栏将其向上移动。树中子控件的顺序与z顺序匹配。