Zárja be az űrlapot1, nyissa meg az űrlapot2 - verem túlcsordulását oroszul
A WinForms projektben kétféle formában létezik: a fő és a gyermek formája. A különbség az, hogy a fő formátum lényegében egy alkalmazás, így amikor bezárja, kilép az alkalmazásból.
Az egyik megoldás a fő forma elrejtése, ahelyett, hogy lezárná. Ez a lehetőség már szerepel a kérdésben. Ezt általában akkor alkalmazzák, amikor a fő formát valahogy a jövőben használják.
Ha az első űrlapot a jövőben nem használják, akkor két lehetőség közül választhat:
Alapértelmezés szerint a Program.cs fájl tartalma így néz ki:
Amint láthatja, az Form1 alkalmazásként indítódik, és az űrlap kitöltésekor kilép a Főből és az alkalmazásból.
Ennek megakadályozásához írja le az űrlapok indítási sorrendjét:
Akkor, amikor az első űrlap bezáródik, a második hívásra kerül, és így tovább az utolsóhoz.
Hátrány - nehéz adatokat átadni az űrlapok között. Igen, a programosztályban megadhat mezőket. a formanyomtatványokkal rendelkező alkotók, és átadja az adatokat ezen mezőkön és a konstruktorok paraméterein, de mi van, ha vissza kell térnünk az előző formák egyikére? Az átmenet komplex logikáját látta Main-nek - nem a legjobb ötlet, hogy enyhén szólva.
2. Átkerülünk az űrlapokról a vezérlőkre
A WinForms-ban van egy csodálatos UserControl osztály. Ez valójában egy üres vezérlés, amelyet bármilyen formában tölthet fel.
Miután elkészült az ilyen vezérlőkészlet, csak a Dock = DockStyle.Fill paraméterre kell helyezni őket, és ellenőrizni kell a Conrol.Visible tulajdonság értékét. mutassa meg a pillanatnyilag szükséges vezérlést. Ha nem szeretné szem előtt tartani az irányítást, vagy nem zavarja meg a megfelelő időben történő létrehozását és megjelenítését, és az új vezérlő használatát és átváltását követően törölje le az eseményeket, hívja a Dispose () lehetőséget. Távolítson el minden hivatkozást, és vigye el a rongyos szemétgyűjtőnek. Csak az ebből származó nyereség kicsi, különösen ha hirtelen úgy döntesz, hogy újra megmutatod.
Elfelejtettem írni egy másik formaváltás hiányáról a Mainen keresztül. Minden új forma kismértékben megnyílik egy másik helyen, jó lehet az autoclicker programok elleni védelemhez, de ez irritál engem felhasználónak, és azt hiszem, nemcsak én.