2013-02-21 2 views
9

Прошу прощения, если это кажется n00bish, но я искал это в течение нескольких дней. Я пытаюсь динамически добавлять флажки в форму окна; однако в форме появляется только один флажок. Вот мой код:Динамическое добавление флажков в Windows Form Only Показывает один флажок

for (int i = 0; i < 10; i++) 
{ 
    box = new CheckBox(); 
    box.Tag = i.ToString(); 
    box.Text = "a"; 
    box.AutoSize = true; 
    box.Location = new Point(10, i + 10); 
    Main.Controls.Add(box); 
} 

Как вы можете видеть, я добавляю флажки через цикл for. Я попытался возиться с местоположением и включить автоматизацию в случае, если они каким-то образом перекрываются. Результатом является один флажок с текстом «a».

+4

Try я * 50 вместо я + 10, которая будет только переложить каждую коробку на 1 пиксель – Benny

ответ

15

На самом деле вы уже создали CheckBox, но в пределах одной точки.

CheckBox box; 
for (int i = 0; i < 10; i++) 
{ 
    box = new CheckBox(); 
    box.Tag = i.ToString(); 
    box.Text = "a"; 
    box.AutoSize = true; 
    box.Location = new Point(10, i * 50); //vertical 
    //box.Location = new Point(i * 50, 10); //horizontal 
    this.Controls.Add(box); 
} 
+0

Просто примечание к OP, так как возникла некоторая путаница с другими ответами ... с использованием 'box = new CheckBox();' внутри цикла вместо 'CheckBox box = new CheckBox();' будет работать так же хорошо. – NominSim

+0

Спасибо за все ваши быстрые ответы! Проблемы были: вертикальное расстояние между флажками было слишком маленьким, и флажок не был создан внутри цикла for. – cruskai239

+0

@NominSim да, я знаю. вот почему я сказал из своего ответа. – spajce

0

В этом случае с помощью динамического присвоения Имени свойства, как для того чтобы достигнуть checkbox.checked собственности, в некоторых других действиях, как кнопка отправки. как я могу установить все флажок, и который создается в цикле?

0

Если у вас есть экземпляр от каждой кнопки вы можете сделать с помощью кнопки или вашего мероприятия, чтобы сделать что-то вроде

CheckBox myCheckedBox = (CheckBox)sender; 
Смежные вопросы