使 RadionButtons 出现在 GroupBox 的前面

Making RadionButtons appear infront of a GroupBox

当我动态创建一个 GroupBox 并在 GroupBox 中添加 4 个 RadionButton 时,它以某种方式将 RadionButton 放在 GroupBox 之后。

我首先有 GroupBox 的代码,为什么 RadionButton 没有显示在 GroupBox 之上?

参考代码:

multichoicegroupbox(Qnum) = New GroupBox : multichoicegroupbox(Qnum).Location = New Point(X, (Y - 5))
multichoicegroupbox(Qnum).Width = 230 : multichoicegroupbox(Qnum).Height = 120
frmQuizForStudents.Controls.Add(multichoicegroupbox(Qnum))

For MultichoiceCheckNum = 1 to 4
    rdbmultichoice(MultichoiceCheckNum) = New RadioButton
    rdbmultichoice(MultichoiceCheckNum).Location = New Point(multichoicegroupbox(Qnum).Location.X + 10,
                                                            (multichoicegroupbox(Qnum).Location.Y + (MultichoiceCheckNum * 24)))
    rdbmultichoice(MultichoiceCheckNum).Font = New Font("Arial", 9)
    rdbmultichoice(MultichoiceCheckNum).Text = multichoice(MultichoiceCheckNum)
    multichoicegroupbox(Qnum).Controls.Add(rdbmultichoice(MultichoiceCheckNum))

    Y += 24
Next MultichoiceCheckNum

当我注释掉 GroupBoxNew Point 代码行时,GroupBox 出现在屏幕的左上角,所有 4 个 RadionButton 都在工作在上面。

因为 RadioButton 的 Location 是相对于它们的容器的。相反,您指定一个相对于表单的位置。按钮在那里,但看不见。

换句话说,您不应在计算中添加 GroupBox 的位置,而应将 GroupBox 的 top/left 位置视为 RadioButton 坐标的位置 0,0。

For MultichoiceCheckNum = 1 to 4
    rdbmultichoice(MultichoiceCheckNum) = New RadioButton
    rdbmultichoice(MultichoiceCheckNum).Location = New Point(10,
                                           10 + (MultichoiceCheckNum * 24))
    rdbmultichoice(MultichoiceCheckNum).Font = New Font("Arial", 9)
    rdbmultichoice(MultichoiceCheckNum).Text = multichoice(MultichoiceCheckNum)
    multichoicegroupbox(Qnum).Controls.Add(rdbmultichoice(MultichoiceCheckNum))

Next MultichoiceCheckNum