22 messaggi dal 03 settembre 2008
Salve a tutti,
sto sviluppando un'applicazione Windows.Forms in C# che può contenere diversi UserControl gestiti a mò di finestre indipendenti.
Vorrei che un clic su un UserControl lo portasse in cima all'asse Z, un pò come succede con le finestre del sistema operativo Windows.

Ovviamente l'evento onclick può essere associato ad un bringtofront(), ma questo funziona solo se il clic è sull'UserControl e non su uno dei controlli figlio.

L'utilizzo dell'evento oncontroladded mi permette di aggiungere l'evento click ad ogni controllo figlio, e ad ogni suo controllo figlio, a cascata, ma ciò sembra non funzionare.

Potete aiutarmi?
22 messaggi dal 03 settembre 2008
Chiedo scusa, ma la notte porta consiglio  , e ho risolto così:

-------
void UC_Template_ControlAdded(object sender, ControlEventArgs e)
{
e.Control.Click += new EventHandler(Control_Click);
foreach (Control c in e.Control.Controls)
{
c.Click += new EventHandler(Control_Click);
c.ControlAdded += new ControlEventHandler(UC_Template_ControlAdded);
}
e.Control.ControlAdded += new ControlEventHandler(UC_Template_ControlAdded);
}

void Control_Click(object sender, EventArgs e)
{
this.BringToFront();
}
-------

Prima non funzionava, perchè non ciclavo sui controlli figlio già inseriti in un controllo prima che gli assegnassi l'evento ControlAdded.

Grazie e scusate il disturbo!

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.