Individuare controllo in groupbox e accedere alle proprietà per scaten...

venerdì 02 luglio 2010 - 08.55

fabilavoro Profilo | Newbie

Ciao a tutti! Ho un problema su C# in visual studio.net 2005. Ho creato 4 groupbox. Nella parte superiore del form ho 3 radio button. A seconda del radio button che clicco, le groupbox si riempiono di checkbox,create dinamicamente all'interno di una procedura. Successivamente a questo, vorrei che se io cliccassi su una checkbox, si aprisse un form di inserimento di testo. La mia domanda è: come faccio a fare in modo che sull'evento "checkedChanged" della checkbox creata dinamicamente, venga richiamata la procedura "apri_schermata_inserimento"? Negli altri casi, mi bastava aggiungere l'handler in modo che mi richiamasse una determinata procedura,(this.rdbDcuM.MouseUp += new System.Windows.Forms.MouseEventHandler(this.RiempiGroupbox)), ma le checkbox vengono create dopo l'inizializzazione. Quindi come faccio a fare in modo che sul checkedchanged delle checkbox, mi venga richiamata la procedura "apri_schermata_inserimento"? Spero di essermi spiegato bene...

Grazie!

freeteo Profilo | Guru

Ciao,
la cosa è la stessa, solo che devi farlo da codice quindi, appena li hai aggiunti devi aggiungere anche la gestione dell'evento checkChanged:
for (int i = 0; i < 100; i++) { CheckBox c = new CheckBox(); c.Text = "...."; c.CheckedChanged += new EventHandler(c_CheckedChanged); ... groupBox.Controls.Add(c); } } .... void c_CheckedChanged(object sender, EventArgs e) { CheckBox c = sender as CheckBox; ... }

come vedi prima di aggiungere il controllo viene anche sottoscritto il suo evento CheckedChanged in modo che venga richiamato quel metodo quando si scatena.
Dentro a quel metodo se vuoi sapere cosa è stato clicckato, ti viene passato tramite il parametro "sender" che essendo un EventHandler generico è di tipo Object, ma a runtime (e lo puoi vedere anche in debug) è cmq il tuo checkBox che ha scatenato l'evento.

Visual Studio fa la stessa cosa mentre sei a design, e te lo scrive nel code behind...

Ciao.

Matteo Raumer
[MCAD .net, MVP Visual C#]
http://blogs.dotnethell.it/freeteo

fabilavoro Profilo | Newbie


Grazie mille!! Funziona!! ;-)

A presto!!!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5