

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.
Omlouvám se, ten nadpis je asi trochu zavádějící.
Řekněme, že spustím aplikaci, otevře se Okno1. Z něho otevřu Okno2 a z Okna2 otevřu Okno3. Všechny vypadají úplně stejně tzn. měly by se stejně i chovat. Když zavřu Okno2, Okno3 se NEzavře, takže vlastně nejde o rodiče a potomky. Ale když zavřu Okno1, ukončí se aplikace a tím pádem se zavřou i všechny ostatní okna.
Já bych potřebovala, aby se aplikace ukončila, až když se zavře poslední otevřené okno, ať už bylo otevřené jako první nebo poslední. Prostě aby z tohoto pohledu byly na stejné úrovni. Ale vůbec nevím, jak toho docílit. Zkoušela jsem hledat, v cestine i anglictine, ale nenasla jsem
Děkuju za odkazy, ale na tohle mi asi nepomůžou, že?
Více možností: 1) Hlavní okno otevřete jako skryté(prázdné), viditelná nechte jen podkokna. 2)Použijte výše uvedený odkaz od kolegy a ve funkci volané při uzavření okna si měňte "rodiče".
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.