Ciao a tutti,
Ho un forum che ha diversi panel sovrapposti che vengono messi in primo piano attraverso la pressione di alcuni bottoni.
Vorrei creare dei tasti avanti e indietro, come quelli del browser, che permettano all'utente di spostarsi nei precedenti panel o in quelli successivi.
Per quanto riguarda il tasto "indietro" utilizzato una struttura Stack per buttargli dentro, ogni volta che porto sul fronte un nuovo pannello il precendente. E il tutto funziona correttamente.
Il problema è il tasto avanti.
La classe panel non ha metodi o eventi che permettano di capire se un pannello è in primo piano, allora mi sono ingegnato facendogli una piccola modifica:


Codice PHP:
 class NewPanel Panel
    
{
   
        public 
event EventHandler BringToFrontEvent null;

        public new 
void BringToFront() {
            
base.BringToFront();
            
onBringToFrontEvent(new EventArgs());
        }

        protected 
virtual void onBringToFrontEvent(EventArgs e)
        {
            
EventHandler handler BringToFrontEvent;
            if (
handler != null)
                
handler(thise);
        }
    } 
in modo che quando un pannello venga messo in primo piano io possa gestire l'evento.
La mia idea è stata la seguente:
Ogni volta che un pannello viene messo in primo piano mi salvo quale'è e quando viene premuto il tasto "indietro" metto in un altra struttura Stack il pannello corrente.
Il tutto funziona se non che seuno clicca prima su indietro e poi su avanti gli stack si svuota e non funziona più una mazza.
Da qui si deduce che non è una soluzione troppo corretta.
Quualcuno di voi potrebbe aiutarmi a correggerla o eventualmente ha qualche idea su come posso fare?
Grazie mille