Hide show form

mercoledì 24 maggio 2006 - 22.34

baolian Profilo | Newbie

sono nuovissimo di Visual C# quindi la domanda è decisamente nerds e la risposta dovrebbe essere decisamente semplice e chiara :-)
detto questo il mio problema è che avendo creato un progetto composto da varie form tra le quali si naviga attraverso pulsanti vorrei che all'apertura della seconda form la prima venisse chiusa e riaperta solo se richiamata (con un pulsante back ad esempio).

ora per aprire una form uso il comando:

private void button3_Click(object sender, System.EventArgs e)
{
FormLista a = new FormLista();
a.ShowDialog();
}


e potrei usare il comando "this.Hide();" messo prima di "FormLista a = new FormLista();" per nascondere la finestra corrente (provato e funzia).
PERO' poi come faccio a fare riapparire, quando richiesto, la form che nascosi?
E inoltre il comando "FormLista a = new FormLista();" serve la prima volta quando la form deve essere creata, ma una volta creata e poi nascosta io non dovrei ricrearla ma solo farla apparire (show?) e non saprei come fare a mettere nel pulsante l'opzione che la crei la prima vola e la mostri senza crearla la seconda volta.

ma sono stato chiaro?

speriamo

grazie

Brainkiller Profilo | Guru

>ma sono stato chiaro?

Si sei stato chiaro, ma questo tipo di funzionamento (A stadi) è tipico di una applicazione Web. Una applicazione Winforms è diversa.

Visto che sei agli inizi, ti consiglierei questa strategia, utilizzare degli oggetti Panel dentro cui posizionare tutti i Controlli. Questo meccanismo ti consente di fatto di creare multiple Form virtuali all'interno della stessa Form.
In alto ti crei una Barra di navigazione con dei pulsanti e in base alla pressione degli stessi visualizzi .Visible=true o nascondi .Visible=false i vari pannelli con i relativi controlli in essi contenuti.

Ciao
David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

baolian Profilo | Newbie

>ti consiglierei questa strategia, utilizzare
>degli oggetti Panel dentro cui posizionare tutti i Controlli.
>Questo meccanismo ti consente di fatto di creare multiple Form
>virtuali all'interno della stessa Form.
>In alto ti crei una Barra di navigazione con dei pulsanti e in
>base alla pressione degli stessi visualizzi .Visible=true o nascondi
>.Visible=false i vari pannelli con i relativi controlli in essi
>contenuti.

Chiarissimo concettualmente, meno praticamente :-)
Per prova ho messo un pannello nella form principale con la proprietà visible = false e vorrei che un pulsante me lo portasse a visible = true, ma dove mettere il codice?
non credo debba mettere nel button_Click il comando pannel.visible = true perchè ho provato e non va, devo creare qualche classe o altro? so che parlo a caso ma questo è dato dal fatto che sto andando avanti davvero molto sperimentalmente.....

già che ci siamo appena volessi rinascondere il pannello per farne apparire un altro, il cmando pannell.visible = false dove lo dovrei mettere?

grazie

Dampyr Profilo | Junior Member

>Chiarissimo concettualmente, meno praticamente :-)
>Per prova ho messo un pannello nella form principale con la proprietà
>visible = false e vorrei che un pulsante me lo portasse a visible
>= true, ma dove mettere il codice?
>non credo debba mettere nel button_Click il comando pannel.visible
>= true perchè ho provato e non va, devo creare qualche classe
>o altro? so che parlo a caso ma questo è dato dal fatto che sto
>andando avanti davvero molto sperimentalmente.....

E' una figata sperimentare...
Cmq salvo casi molto particolari, e non mi sembra essere il tuo, devi gestire l'evento _Click del bottone, perciò il codice lo devi sbattere li dentro, mi sembra strano non funzioni, ti conviene postare un po' di codice che così è più facile capirci...

>già che ci siamo appena volessi rinascondere il pannello per
>farne apparire un altro, il cmando pannell.visible = false dove
>lo dovrei mettere?

Funziona tutto con la gestione di eventi particolari, decidi tu, puoi farlo con un timer che dopo un TOT di tempo esegue "qualcosa" o puoi mettere un'altro pulsante...
Sto facendo una cosa molto simile in VB.NET, stasera qnd torno a casa da lavoro, se ti può interessare, ti posto un file con un po' di codice...

Cambio idea...
Ho provato a fare qualcosa al volo in ufficio, ti allego tutto!

... cerca di essere il giocatore di scacchi, non il pezzo sulla scacchiera...
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-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5