Vb.net 无法堆叠GroupBox吗?

Vb.net 无法堆叠GroupBox吗?,vb.net,Vb.net,我正在尝试创建一个简单的午餐订购系统。我使用5个分组框,每个框中有4个单选按钮,为学校服务的供应商创建菜单。我有代码可以使与一周中的某一天对应的菜单可见,同时隐藏所有其他菜单。我试图在输入信息时将菜单堆叠在彼此的顶部,以便于简单的放置,而点击日期时GroupBox不会显示。只要它们没有堆叠,就可以正常工作。这是个小故障还是什么我不知道的 菜单(GroupBox)的默认值设置为visible=false。当设置为true时,它仍然执行相同的操作 Private Sub DateTimePicker

我正在尝试创建一个简单的午餐订购系统。我使用5个分组框,每个框中有4个单选按钮,为学校服务的供应商创建菜单。我有代码可以使与一周中的某一天对应的菜单可见,同时隐藏所有其他菜单。我试图在输入信息时将菜单堆叠在彼此的顶部,以便于简单的放置,而点击日期时GroupBox不会显示。只要它们没有堆叠,就可以正常工作。这是个小故障还是什么我不知道的

菜单(GroupBox)的默认值设置为visible=false。当设置为true时,它仍然执行相同的操作

Private Sub DateTimePicker1_ValueChanged(sender As Object, e As EventArgs) Handles DateTimePicker1.ValueChanged

    If DateTimePicker1.Value.DayOfWeek.ToString = WeekdayName(2) Then
        chaisGB.Visible = True
        mcalistersTuesGB.Visible = False
        mcalistersWedGB.Visible = False
        chickfilaGB.Visible = False
        hungryHowieGB.Visible = False
    ElseIf DateTimePicker1.Value.DayOfWeek.ToString = WeekdayName(3) Then
        mcalistersTuesGB.Visible = True
        chaisGB.Visible = False
        mcalistersWedGB.Visible = False
        chickfilaGB.Visible = False
        hungryHowieGB.Visible = False
    ElseIf DateTimePicker1.Value.DayOfWeek.ToString = WeekdayName(4) Then
        mcalistersWedGB.Visible = True
        chaisGB.Visible = False
        mcalistersTuesGB.Visible = False
        chickfilaGB.Visible = False
        hungryHowieGB.Visible = False
    ElseIf DateTimePicker1.Value.DayOfWeek.ToString = WeekdayName(5) Then
        chickfilaGB.Visible = True
        chaisGB.Visible = False
        mcalistersTuesGB.Visible = False
        mcalistersWedGB.Visible = False
        hungryHowieGB.Visible = False
    ElseIf DateTimePicker1.Value.DayOfWeek.ToString = WeekdayName(6) Then
        hungryHowieGB.Visible = True
        chaisGB.Visible = False
        mcalistersTuesGB.Visible = False
        mcalistersWedGB.Visible = False
        chickfilaGB.Visible = False

    End If

End Sub

我猜您实际上是在设计器中将一个
GroupBox
拖动到另一个中。要将多个控件放置在具有相同父控件的同一位置,请尝试以下操作。将所有控件拖动到任何旧位置的所需父控件上,例如窗体本身。现在,使用Shift+拖动或Ctrl+单击选择所有控件。打开属性窗口,然后手动设置
大小
位置
属性。然后,您会发现所有控件都“堆叠”在彼此的顶部

还可以使用“文档大纲”窗口将控件移入和移出父容器,并更改同一容器中控件的z顺序

您还可以大大简化该代码。永远记住这个原则:不要重复你自己。例如。


与其投反对票,不如告诉我为什么这是一个糟糕的问题……我认为你把这些盒子拖在一起可能是对的。我为每个groupbox设置了相同的location属性,并使用了简化的代码。因此,一切正常。感谢您对此事的关注和帮助。
Dim selectedGroupBox As GroupBox

Select Case DateTimePicker1.Value.DayOfWeek
    Case DayOfWeek.Monday
        selectedGroupBox = chaisGB
    Case DayOfWeek.Tuesday
        selectedGroupBox = mcalistersTuesGB
    Case DayOfWeek.Wednesday
        selectedGroupBox = mcalistersWedGB
    Case DayOfWeek.Thursday
        selectedGroupBox = chickfilaGB
    Case DayOfWeek.Friday
        selectedGroupBox = hungryHowieGB
End Select

Dim allGroupBoxes = {chaisGB, mcalistersTuesGB, mcalistersWedGB, chickfilaGB, hungryHowieGB}

Array.ForEach(allGroupBoxes, Sub(gb) gb.Visible = (gb Is selectedGroupBox))