有没有一种方法可以将面板堆叠在一起而不将它们分组在一起?

时间:2020-09-12 01:05:56

标签: vb.net visual-studio

如标题所述。有没有办法使面板彼此重叠而不是分组?我正在尝试为作业做order form UI。 UI并非只是在试图使它看起来不错,而是无法弄清楚如何使其全部正常工作的功课。

    Public Class Main
    Private Sub btnOrder_Click(sender As Object, e As EventArgs) Handles btnOrder.Click
        panelOrder.Visible = True
        panelShipping.Visible = False
        panelConfirm.Visible = False

    End Sub

    Private Sub btnShip_Click(sender As Object, e As EventArgs) Handles btnShip.Click
        panelOrder.Visible = False
        panelShipping.Visible = True
        panelConfirm.Visible = False

    End Sub

    Private Sub btnConfirm_Click(sender As Object, e As EventArgs) Handles btnConfirm.Click
        panelOrder.Visible = False
        panelShipping.Visible = False
        panelConfirm.Visible = True

    End Sub
End Class

这是我剩下的小代码。作业中只有一些UI元素,如您在图像中看到的那样。我只是想找出一种方法来更改面板,例如,如果我按下运送按钮,然后进入运送面板,依此类推。

2 个答案:

答案 0 :(得分:0)

注释中链接的答案建议使用文档大纲窗口,这绝对是您应该熟悉的工具,但在这种情况下甚至没有必要。

在设计器中,如果将控件放在另一个子容器上,则该控件将成为该容器而不是窗体的子代。如果选择一个现有的子容器,然后在工具箱中双击一个控件,则会发生相同的事情。

在设计器中,如果您已经在另一个控件内,则只需将内部控件拖放到窗体本身的某个区域即可。如果使用两个Panel控件来执行此操作,则可以简单地选择它们,打开 Properties 窗口并设置LocationSize属性,然后占据相同的区域而没有一个内部。

您可以右键单击当前可以看到的一个,然后选择发送到后退来查看另一个,或者可以从下拉菜单中选择一个看不到的在属性窗口的顶部,右键单击边框,然后选择 Bring to Front 。请注意,这些操作将更改控件的z顺序,因此,如果这很重要,则需要确保完成后总体z顺序正确。 文档大纲窗口按控件的z顺序列出控件,您可以根据需要在控件中重新排列。

答案 1 :(得分:0)

通过描述,您希望实现面板重叠。与以下gif类似。 enter image description here

您可以参考以下步骤来实现它。

  1. 设计面板和填充控件。 enter image description here

  2. 通过“属性”窗口设置每个面板的位置和大小。三个面板的位置和大小相同。 (请不要拖动,请使用“属性”窗口进行设置。)

  3. 检查文档大纲并确认包含关系。这三个面板应该相等,并且彼此之间不应包含彼此。
    查看=>其他Windows =>文档大纲

正确的关系:
enter image description here

关系错误:
enter image description here

如果出现上述情况,请单击左箭头将当前控件移出容器。