Почему только первый RadioButton добавляется в GroupBox?

Я пытаюсь динамически создавать элементы управления Windows и добавлять их на панель. Для кнопки и флажка это работало нормально; Я столкнулся с проблемой с GroupBox, однако, с RadioButtons внутри него.

Первый элемент RadioButton создается и добавляется в GroupBox в ожидаемом месте, но из-за того, что он создается якобы (пошагово просматривая код, кажется, что это так), он не виден.

Я бы подумал, что если последующие RadioButtons будут помещены поверх предыдущих, последним будет тот, который видели. Вот как это выглядит:

Каждое ~ -ограниченное значение val должно быть текстовым значением radioButton, но отображается только одно. Нужно ли явно указывать значения Location для последующих RadioButton-ов или почему это не получается?

Вот код:

private GroupBox getGroupBox(string currentSettings, int curLeftVal)
{
    // "apple~orange~peach~True (must look for "enclose group in a black box" as the last val (ignore for the quick-and-dirty mockup, though))
    List<string> grpbxVals = new List<string>(currentSettings.Split('~'));
    GroupBox gb = new GroupBox();
    gb.Height = 60;
    gb.Location = new Point(curLeftVal, PANEL_TOP_LOC);
    RadioButton radbtn = null;
    // "-1" because we're ignoring the final bool ("enclose in black box")
    for (int i = 0; i < grpbxVals.Count-1; i++)
    {
        radbtn = new RadioButton();
        radbtn.Text = grpbxVals[i];
        gb.Controls.Add(radbtn);
    }
    return gb;
}
ОБНОВИТЬ

Идея в ответе Пьера ниже кажется разумной, но все же это не совсем то, что доктор прописал:

ОБНОВЛЕНИЕ 2

Это работает довольно хорошо (модификация кода Пьера):

IList<string> grpbxVals = new List<string>(currentSettings.Split('~'));
GroupBox gb = new GroupBox { Height = 60, Location = new Point(curLeftVal, 0) };

int radButtonPosition = 0; 
for (int i = 0; i < grpbxVals.Count() - 1; i++)
{
    gb.Controls.Add(new RadioButton { Text = grpbxVals[i], Location = new Point(curLeftVal, radButtonPosition) });
    radButtonPosition += new RadioButton().Height - 4; // the "-4" is a kludge
}
return gb;

Дает мне:

Ответы на вопрос(2)

Ваш ответ на вопрос