Válí se ti projekty v šuplíku? Dostaň je mezi lidi a získej cool tričko a body na profi IT kurzy v soutěži ITnetwork summer 2017!
Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)
Avatar
Adam Ježek
Tým ITnetwork
Avatar
Adam Ježek:24.1.2014 17:37

Čaute,
mám v aplikaci hned na začátku v

public Form1()
{
    InitializeComponent();
    souhla();
}

pčidanej řádek na zaolání metody souhla, která vypadá takto:

private void souhla()
       {
           DialogResult souhlas = MessageBox.Show("Autor nenese za program jakoukoliv zodpovědnost. Soulasíte s použitím na vlastní riziko? ", "Potvrzení zodpovědnosti", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
           if (souhlas == DialogResult.No)
           {

               MessageBox.Show("Je mi líto, ale musíte souhlasit", "Takhle by to nešlo :(", MessageBoxButtons.OK, MessageBoxIcon.Stop);
               Application.Exit();
           }
       }

a máv případě zamítnutí souhlasu ukázat okno s tim, že jetřeba souhlasit(to se stane) a aplikaci potom ukončit. je jedno jak ten messagebox o tom, že je třeba souhlasit zavřu (křížek, ok), ale aplikace z vesela naběhne a neukončí se.
podle mě je to v tom, že se tato akce vykonává ještě dřív,než vůbec naběhne to okno, takže se to neukončí. napadlo mě, že by se místo toho změnila proměnná a po spuštení by tam byl nějaký timer, který by zjistil, co je v tý proměnný a buď by se zastavil, nebo by aplikaci vypnul, ale podle mě nejspíš bude bude nějaký eleantnější řešení.
A pokud ano, jaký?
Dík.

Odpovědět 24.1.2014 17:37
Pokud chceš odpovědět, klikni na odpovědět. Pokud chceš vložit zdroják, klikni na vložit zdroják (</>)
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na Adam Ježek
Jan Vargovský:24.1.2014 17:40

Zkus to dát do metody OnLoad.

 
Nahoru Odpovědět  +1 24.1.2014 17:40
Avatar
Adam Ježek
Tým ITnetwork
Avatar
Odpovídá na Jan Vargovský
Adam Ježek:24.1.2014 17:44

tak sem si trošku zagůglil, ale jak to přes onload vypnout sem nepochopil.
Takže můžeš mi prosím říct jak?

Nahoru Odpovědět 24.1.2014 17:44
Pokud chceš odpovědět, klikni na odpovědět. Pokud chceš vložit zdroják, klikni na vložit zdroják (</>)
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na Adam Ježek
Jan Vargovský:24.1.2014 18:05

OnLoad je první metoda, která se vykoná, až je formulář připravený. Jednoduše si jí najdi v eventech(událos­tech) v designeru v properties a nebo napiš v kódu override, vyber onload a tam do ní dej ještě tu tvojí metodu.

Pak existuje ještě lepší varianta, ale tou tě nebudu zatěžovat :) (jde o to, že by ses zeptal, jestli se ta aplikace má vůbec spustit)

Editováno 24.1.2014 18:05
 
Nahoru Odpovědět 24.1.2014 18:05
Avatar
Adam Ježek
Tým ITnetwork
Avatar
Odpovídá na Jan Vargovský
Adam Ježek:24.1.2014 18:22

první metoda, co se vykoná...
já to z toho prvního komentářa pochopil tak, že má něco společnýho s ukončením :D

protected override void  OnLoad(EventArgs e)
{
    souhla();
}

ale dík, funguje :)

Editováno 24.1.2014 18:25
Nahoru Odpovědět 24.1.2014 18:22
Pokud chceš odpovědět, klikni na odpovědět. Pokud chceš vložit zdroják, klikni na vložit zdroják (</>)
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na Adam Ježek
Jan Vargovský:24.1.2014 18:27

To volání base.OnLoad(e) tam nechej.

 
Nahoru Odpovědět 24.1.2014 18:27
Avatar
Adam Ježek
Tým ITnetwork
Avatar
Odpovídá na Jan Vargovský
Adam Ježek:24.1.2014 19:46

si řek brzo.
ale funguje to v pohodě i bez něj, ale radši to tam vrátim

Nahoru Odpovědět 24.1.2014 19:46
Pokud chceš odpovědět, klikni na odpovědět. Pokud chceš vložit zdroják, klikni na vložit zdroják (</>)
Avatar
David Čápka
Tým ITnetwork
Avatar
Odpovídá na Adam Ježek
David Čápka:24.1.2014 19:48

Application.Exit(); bys neměl používat nikde, formulář jde zavřít pomocí Close().

Nahoru Odpovědět  +1 24.1.2014 19:48
Miluji svou práci a zdejší komunitu, baví mě se rozvíjet, děkuji každému členovi za to, že zde působí.
Avatar
Adam Ježek
Tým ITnetwork
Avatar
Odpovídá na David Čápka
Adam Ježek:25.1.2014 14:37

můžu se zeptat proč by nemělo? já ho mam v několika aplikací a dou v pohodě, včetně tajtý

Nahoru Odpovědět 25.1.2014 14:37
Pokud chceš odpovědět, klikni na odpovědět. Pokud chceš vložit zdroják, klikni na vložit zdroják (</>)
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na Adam Ježek
Jan Vargovský:25.1.2014 14:43

Protože applikace má jeden hlavní formulář od kterého se odvíjí. A stačí na tom hlavním zavolat Close metodu, aby se zavřeli i všechny ostatní.

 
Nahoru Odpovědět 25.1.2014 14:43
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 10 zpráv z 10.