0
У меня есть тест, и в Form1_Load
Я заполняю этот тест вопросами и ответами. Но это показывает только первый вопрос. Что случилось?Зачем заполняется только первый групповой ящик?
int loc = 20;
for (int i = 0; i < 5; i++)
{
GroupBox gb = new GroupBox();
gb.Size = new Size(500, 200);
gb.Location = new Point(40, loc);
gb.BackColor = System.Drawing.Color.Aquamarine;
Label q_text = new Label(); // текст питання
q_text.Text = "Питання" + (i + 1);
q_text.Font = new Font("Aria", 10, FontStyle.Bold);
q_text.Location = new Point(gb.Location.X, gb.Location.Y);
gb.Controls.Add(q_text);
int iter = q_text.Location.Y + 30;
foreach (string key in questions[i].answers.Keys)
{
RadioButton rb = new RadioButton();
rb.Text = key;
rb.Size = new Size(120, 25);
rb.Location = new Point(q_text.Location.X + 10, iter);
iter += 30;
gb.Controls.Add(rb);
}
this.Controls.Add(gb);
loc += 300;
}
Я не запускал этот тест для проверки, но единственное, что дает мне паузу, - это тестирование местоположения 'q_text', которое основано на местоположении' gb', но gb не был добавлен в контейнер еще. Вы прошли через код, чтобы убедиться, что все координаты имеют смысл? Ничто не выделяется как «неправильный» в вашем коде. –
Одна вещь, которая кажется смешной, - это то, что q_text выглядит неправильно. Если вы хотите в левом верхнем углу, это местоположение должно быть «0,0» относительно контейнера. –
gb содержит q_text и rb. Я не понимаю, почему это неправильно. – user3528837