2013-02-21 18 views
9

Przykro mi, jeśli wydaje się to nieaktualne, ale szukam tego od kilku dni. Próbuję dynamicznie dodawać pola wyboru do formularza systemu Windows; jednak w formularzu pojawi się tylko jedno pole wyboru. Oto mój kod:Dynamiczne dodawanie pól wyboru tylko do formularza Windows Pokazuje jedno pole wyboru

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); 
} 

Jak widzisz, dodam pola wyboru za pośrednictwem pętli for. Próbowałem zepsuć lokalizację i włączyć autosize, na wypadek gdyby w jakiś sposób się pokryły. Wynikiem jest pojedyncze pole wyboru z tekstem "a".

+4

Try i * 50 zamiast I + 10, który przeniesie każde pole tylko o 1 piksel – Benny

Odpowiedz

15

W rzeczywistości już utworzyłeś CheckBox, ale w tym samym punkcie.

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

Po prostu notatka do OP, ponieważ było trochę zamieszania z innymi odpowiedziami ... używając 'box = new CheckBox();' wewnątrz pętli zamiast 'CheckBox box = new CheckBox();' będzie działać równie dobrze. – NominSim

+0

Dziękuję za wszystkie szybkie odpowiedzi! Problemy były następujące: pionowa odległość między polami wyboru była zbyt mała, a pole wyboru nie zostało utworzone w pętli for. – cruskai239

+0

@NominSim tak wiem. to właśnie dlatego powiedziałem z mojej odpowiedzi. – spajce

0

W tym przypadku przy pomocy dynamicznie przypisać właściwość Name jak achive checkbox.checked nieruchomości, w pewnych innych działań, takich jak przycisk wysyłania. jak mogę zaznaczyć wszystkie pola wyboru i które są tworzone w pętli?

0

Jeśli masz wystąpienie z każdego przycisku można zrobić z przycisku lub zdarzenia, aby coś jak

CheckBox myCheckedBox = (CheckBox)sender; 
Powiązane problemy