Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Pravý horný krížik neukončí proces

Aktivity
Avatar
František Pastorek:18.1.2015 13:32

Mám taký problém. Ako zatvorím tým pravým horným krížikom prve window form okno tak sa ukončí aplikácia cela aj proces. ALE! Ak cez prvé okno vytvorim druhé a to prvé schovám a aj zatvorím teda použijem metódu Close() a druhe okno zatvorim krizikom tak znovu sa proces neukonci. Skúsil som to teda zavolaním eventu FormClosingEven­tArgs ale nefunguje ani to.

namespace WindowsFormsApplication24
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }

        public void exit(object sender, FormClosingEventArgs e)
        {
            Application.Exit();
        }
    }
}

Vopred ďakujem za akúkolvek pomoc.

 
Odpovědět
18.1.2015 13:32
Avatar
Odpovídá na František Pastorek
Michal Štěpánek:18.1.2015 19:00

Protože to "první okno" bere program jako hlavní. Když ho zavřeš, program se ukončí. Když ho jen schováš a zavřeš všechny ostatní, program stále běží, jen je schovaný.
Pokud z prvního formu vytvoříš druhý form a zavřeš ten první, zavřou se oba formy.

Nahoru Odpovědět
18.1.2015 19:00
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
rawen
Člen
Avatar
Odpovídá na František Pastorek
rawen:18.1.2015 19:16

Problém je v tom, že ten tvuj exit je metoda a hádám, že jí nemáš přiřazen k Form2. Normální si v návrhu Form2 koukni v okně Properties na eventy (takovej blesk), je tam událost FormClosing, když na to klikneš dvakrát, tak se ti přiřadí událost Form2 přímo do kódu, kam jen dopíšeš co se při aktivování události má stát. :)

private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
    Application.Exit();
}
Nahoru Odpovědět
18.1.2015 19:16
Co můžeš naprogramovat dnes, neodkládej na zítřek.
Avatar
František Pastorek:18.1.2015 20:30

Michal Štěpánek, vytvoril som inštanciu k Form1 a vo Form2 som ju zatvoril metódou Close(). To aj tak nepomohlo.

rawen Ďakujem :)

 
Nahoru Odpovědět
18.1.2015 20:30
Avatar
αcнερ™
Tvůrce
Avatar
αcнερ™:21.1.2015 9:53

Čo tak použiť

System.Diagnostics.Process.Kill

? :)

Nahoru Odpovědět
21.1.2015 9:53
. . .
Avatar
Odpovídá na αcнερ™
sadlomaslox25:21.1.2015 12:08

to neni moc dobry napad obchazet zbastleny navrh aplikace pres Process.Kill ktery ani nezavola finalizery :)

 
Nahoru Odpovědět
21.1.2015 12:08
Avatar
αcнερ™
Tvůrce
Avatar
Odpovídá na sadlomaslox25
αcнερ™:21.1.2015 12:09

Tak ale nápad to bol :)

Nahoru Odpovědět
21.1.2015 12:09
. . .
Avatar
Odpovídá na František Pastorek
Michal Štěpánek:21.1.2015 16:48

...a vo Form2 som ju zatvoril metódou Close()...
Je otázka, co jsi to vlastně metodou Close() zavřel. Dej sem ten kód, třeba to bude jen nějaká blbůstka...

Nahoru Odpovědět
21.1.2015 16:48
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
František Pastorek:22.1.2015 16:10

Form1 form1 = new Form();
form1.Close();

 
Nahoru Odpovědět
22.1.2015 16:10
Avatar
Jan Vargovský
Tvůrce
Avatar
Odpovídá na František Pastorek
Jan Vargovský:22.1.2015 16:13

Takhle si nezískáš referenci hlavního formu ve formu 2 ;)

 
Nahoru Odpovědět
22.1.2015 16:13
Avatar
rawen
Člen
Avatar
rawen:22.1.2015 16:22

Však to řešení co jsem sem dával je funkční a není potřeba žádná instance z fomr1, nebo to není vhodné to zavírat přes Application.Exit(); v události ve form2? :)

Editováno 22.1.2015 16:23
Nahoru Odpovědět
22.1.2015 16:22
Co můžeš naprogramovat dnes, neodkládej na zítřek.
Avatar
František Pastorek:22.1.2015 23:47

Je a aj to používam a funguje to skvele :) Ale Michal Štěpánek to chcel vedieť :)

 
Nahoru Odpovědět
22.1.2015 23:47
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 12 zpráv z 12.