[ CallMeSaMaster @ 09.12.2009. 08:52 ] @
Pozdrav,

radim jednu dektop app. Napravio sam jednu formu kojoj sam setovo IsMdiContainer = true. Ta forma je kao glavna forma u kojoj se otvaraju neke druge forme unutra nje.
Sada zelim, da kada korisnik klikne na close button odnosno na "X" forme, da potvrdi da stavrno zeli zatvoriti aplikaciju.
To sm napravio ovako :

Code:

        private void Start_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (MessageBox.Show("Da li ste sigurni da želite zatvoriti program? \nSvi podaci koji nisu pohranjeni, bit će izgubljeni.", "Pitanje", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                Application.Exit();
            }
            else
            {
                e.Cancel = true;
            }
        }


Medjutim ovdje imam problem: Ukoliko imam otvorenu neku "podformu" unutra ove glavne forme, kada kliknem na izlaz, ovaj dialog mi se toliko puta pojavi da potvrdim. Recimo da unutar ove forme imam jos jednu pod formu otvorenu, onda dobijem 2x dialog da potvrdim da zelim izaci.

Mogu li to kako sprijeciti? Zelim da se dialog samo jednom otvori i da samo jendom moram potvrditi.
[ bocy @ 09.12.2009. 11:16 ] @
A zasto ne definises neku globalnu promenljivu tipa bool npr. ApExit i kada korisnik pritisne Yes postavis je na true.
Kod formclosing svake postavi jedno if koje proverava da li je ApExit true i ako nije onda da izbaci ovaj dijalog u suprotnom nista
[ malo_nj @ 14.12.2009. 19:03 ] @
Mozes i ovo pokusati System.Environment.Exit(0) umjesto Application.Exit(). Problem koji ti se desava je to sto Application.Exit posalje signal svim ostalim formama da se zatvore, a pretpostavljam da si za svaku stavio ovu onClose funkciju pa tako da i dobijes sve te dialoge. E System.Environment.Exit(0) ubije proces ali budi oprezan sa njim nije bas elegantno resenje za izlaz iz aplikacije