Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno C# nezavírat potomky okna při zavření rodiče

Ahoj,

potřebovala bych poradit - mám Form a po stisknutí tlačítka se zobrazí další instance toho Formu.

private void New()
{
 Form1 f = new Form1();
 f.Show();
}

Funguje to, ale když zavřu první okno, zavřou se i všechny ostatní. Potřebovala bych, aby všechna okna byla na stejné úrovni. Děkuji za každou radu.

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Mockrát děkuju, funguje to :-) Jen nechápu poznámku, že bych měla při zavírání "měnit rodiče", když… nový
flemch 03.08.2011 20:46
flemch
Takéto správanie sa klasicky robí pomocou vlastného ApplicationContextu. Spravíš si vlastný kontext… poslední
los 03.08.2011 22:42
los

Mockrát děkuju, funguje to :-)
Jen nechápu poznámku, že bych měla při zavírání "měnit rodiče", když jsou instance programu nezávislé. Nicméně to funguje i bez toho, tak snad v tom není nějaký háček...

Takéto správanie sa klasicky robí pomocou vlastného ApplicationContextu. Spravíš si vlastný kontext aplikácie, v ktorom preťažíš metódu OnMainFormClosed, aby sa pri zatvorení hlavného okna neukončila aplikácia. V obsluhe udalosti Application.Idle budeš kontrolovať počet otvorených okien v Application.OpenForms a v prípade, že klesne na nulu, ukončíš aplikáciu.

Samostatné procesy budú fungovať samozrejme tiež, ale so všetkými vlastnosťami, ktoré z toho vyplývajú, ako napr. zložitejšie riešenie komunikácie medzi formulármi, väčšie nároky na systémové prostriedky a pod.

Edit: Vo WPF sa to dá spraviť nastavením jednej vlastnosti Application.ShutdownMode.

Zpět do poradny Odpovědět na původní otázku Nahoru