Închideți formularul1, deschideți form2 - se deplasează stivă în rusă

Există două tipuri de forme în proiectul WinForms - formele principale și cele copil. Diferența dintre ele este că forma principală este, în esență, o aplicație, așa că atunci când o închideți, veți părăsi aplicația.







O soluție este să ascundeți forma principală, în loc să o închideți. Această opțiune este deja scrisă în întrebare. Acesta este de obicei folosit când forma principală este folosită cumva în viitor.

Dacă primul formular nu este utilizat în viitor, puteți utiliza 2 opțiuni:

În mod implicit, conținutul fișierului Program.cs arată astfel:

După cum puteți vedea, Form1 este lansat ca o aplicație și, la finalizarea formularului, va ieși din Main și din aplicație.

Pentru a preveni acest lucru, puteți scrie secvența de pornire a formularelor:

Atunci când prima formă este închisă, cea de-a doua va fi apelată și așa mai departe până la ultima.

Dezavantaj - este dificil să transferați date între formulare. Da, puteți defini câmpuri în clasa programului. constructori cu parametri în forme și date trecute prin aceste câmpuri și parametrii constructorilor, dar ce se întâmplă dacă trebuie să vă întoarceți la una din formele anterioare? A văzut logica complexă a tranzițiilor către Main - nu cea mai bună idee, să o spunem ușor.







2. Trecem de la formulare la controale

În WinForms, există o clasă minunată UserControl. Acesta este de fapt un control gol, pe care îl puteți umple cu orice conținut, cum ar fi forma.

Odată ce un set de astfel de controale a fost pregătit, trebuie doar să le plaseze pe formular cu un parametru Dock = DockStyle.Fill și controlează valoarea proprietății Conrol.Visible. arată controlul de care aveți nevoie în acest moment. Dacă nu doriți să păstrați controlul în memorie, nimeni nu împiedică doar crea la momentul potrivit și pe ecran, și apoi utilizați și pentru a trece la un nou control, de a renunța la eveniment, apel va elimina (). Îndepărtați toate referințele și dați-le la colectorul de gunoi împrăștiat. Numai câștigul din acest lucru este mic, mai ales dacă vă decideți brusc să-l arătați din nou.

Am uitat să scriu despre o altă lipsă de schimbare între formulare prin intermediul principalului. Fiecare nou formular se va deschide într-un loc ușor diferit, poate pentru a proteja împotriva software-autoclickers este bine, dar eu, ca utilizator al acestui comportament enervant, și cred că nu numai eu.







Trimiteți-le prietenilor: