C# C# chiusura apertura form?

Stato
Discussione chiusa ad ulteriori risposte.

RuggeriExtreme

Utente Gold
10 Ottobre 2011
332
101
16
260
Salve,
mi serve un piccolo aiuto, attraverso program.cs ho runnato un primo form che utilizzo da menù adesso da questo con un pulsante devo aprire il form2 e chiudere il form 1, ho provato in tutti i modi ma non riesco.
 
Ultima modifica:
Basta creare un'istanza del nuovo form e distruggere la precedente:
Form2 frm = new Form2()
frm.Show()
this.Close() // dovrai impostare dalle proprietà del progetto di non chiudere l'applicazione alla chiusura del primo form


(Close() se non sbaglio dovrebbe richiamare anche Dispose() e quindi marcare le risorse allocate dal form per la pulizia del Garbage Collector)
 
Basta creare un'istanza del nuovo form e distruggere la precedente:
Form2 frm = new Form2()
frm.Show()
this.Close() // dovrai impostare dalle proprietà del progetto di non chiudere l'applicazione alla chiusura del primo form


(Close() se non sbaglio dovrebbe richiamare anche Dispose() e quindi marcare le risorse allocate dal form per la pulizia del Garbage Collector)

ho già provato a fare come dicevi tu.. devo provare a modificare le proprietà... perchè in questo modo mi si chiudono entrambi. Comunque grazie.
 
ho già provato a fare come dicevi tu.. devo provare a modificare le proprietà... perchè in questo modo mi si chiudono entrambi. Comunque grazie.
Sì ovviamente. Per default, alla chiusura del primo form viene chiusa l'intera applicazione. Puoi modificare questo comportamento dalle proprietà dal progetto.
 
Sì ovviamente. Per default, alla chiusura del primo form viene chiusa l'intera applicazione. Puoi modificare questo comportamento dalle proprietà dal progetto.

No, non in C#, è fattibile solo in vb.

Devi modificare program.cs a dovere, oppure al posto di chiudere il primo form lo nascondi con .Hide()
 
No, non in C#, è fattibile solo in vb.

Devi modificare program.cs a dovere, oppure al posto di chiudere il primo form lo nascondi con .Hide()

Ho già provato a rimane il processo aperto quando chiudi il secondo form, e devi chiuderlo dal taskmanager, bestemmiando. E' possibile che in C# non si possa fare una cosa del genere ? ?
 
Ho già provato a rimane il processo aperto quando chiudi il secondo form, e devi chiuderlo dal taskmanager, bestemmiando. E' possibile che in C# non si possa fare una cosa del genere ? ?
Nel program.cs avrai una cosa tipo:
Application.Run(new Form1());
Se ci sono solo 2 form e non devi riaprirne altri o bla bla, puoi mettere così:
Application.Run(new Form1());
Application.Run(new Form2());
dovrebbe andare (non testato). Chiudendo il primo form, si apre automaticamente il secondo. Chiudendo il secondo si chiude.
 
Ho già provato a rimane il processo aperto quando chiudi il secondo form, e devi chiuderlo dal taskmanager, bestemmiando. E' possibile che in C# non si possa fare una cosa del genere ? ?

Application.Exit() per chiudere il programma (magari sull'evento form close)

Nel program.cs avrai una cosa tipo:
Application.Run(new Form1());
Se ci sono solo 2 form e non devi riaprirne altri o bla bla, puoi mettere così:
Application.Run(new Form1());
Application.Run(new Form2());
dovrebbe andare (non testato). Chiudendo il primo form, si apre automaticamente il secondo. Chiudendo il secondo si chiude.

Così facendo perti l'istanza del primo form e quindi tutte le azioni eseguite in esso, non ha senso
 
La cosa piu' semplice e' dichiarare in una classe a parte un form e alla creazione del nuovo assegnargli il valore del form, cosi' da poterlo gestire facilmente:
in una classe
Form MioForm;
alla creazione del form
Form tmpform = new nomeform();
tmpform.Show();
nomeclasse.MioForm = tmpform;

..da qualsiasi punto del codice puoi gestire il form.. es: nomeclasse.MioForm.Close();
 
Stato
Discussione chiusa ad ulteriori risposte.