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(this, e);
}
}
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