2013-02-21 11 views
9

Mi dispiace se sembra n00bish, ma lo sto cercando da alcuni giorni. Sto tentando di aggiungere dinamicamente caselle di controllo a un modulo di Windows; tuttavia, nel modulo viene visualizzata solo una casella di controllo. Qui è il mio codice:Aggiunta dinamica di caselle di controllo solo a Windows Visualizza una casella di controllo

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

Come potete vedere sto aggiungendo le caselle di controllo tramite un ciclo for. Ho provato a fare confusione con la posizione e abilitare l'autosize nel caso in cui fossero in qualche modo sovrapposti. Il risultato è una singola casella di controllo con il testo "a".

+4

provo * 50 invece di i + 10 che si sposterà solo ogni casella di 1 pixel – Benny

risposta

15

In realtà hai già creato uno CheckBox ma nello stesso punto.

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

Solo una nota all'OP, poiché c'era una certa confusione con altre risposte ... usando 'box = new CheckBox();' all'interno del ciclo invece di 'CheckBox box = new CheckBox();' funzionerà altrettanto bene. – NominSim

+0

Grazie per tutte le tue risposte veloci! I problemi erano: la distanza verticale tra le caselle di controllo era troppo piccola e la casella di controllo non veniva creata all'interno del ciclo. – cruskai239

+0

@NominSim si lo so. ecco perché ho detto dalla mia risposta. – spajce

0

In questo caso con l'aiuto di assegnare dinamicamente proprietà Name come achive proprietà checkbox.checked, in qualche altra azione, come pulsante di invio. come posso ottenere che la casella di controllo sia spuntata e quale viene creata in loop?

0

Se si dispone di un'istanza da ogni pulsante è possibile fare con il pulsante o il vostro evento per fare qualcosa di simile a

CheckBox myCheckedBox = (CheckBox)sender; 
Problemi correlati