Forum » Programiranje » [c#] event, klik tipke escape
[c#] event, klik tipke escape
japol ::
Imam kodo:
in
in to ne dela.
RisanjeČrte, RisanjeKroga,... so metode slikarja in s klikom na "esc" želim prekiniti ukaze risanja.
Kako to popravim? Kako se s takimi eventi sploh dela?
public Form1() { InitializeComponent(); this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.Form1_KeyPressed); }
in
private void Form1_KeyPressed(object sender, KeyPressEventArgs e) { if (e.KeyChar == (char)Keys.Escape) { RisanjeČrte = false; RisanjeKroga = false; OpisSlike = false; BrisalecSlike = false; label61.Text = "Izberi ukaz"; } }
in to ne dela.
RisanjeČrte, RisanjeKroga,... so metode slikarja in s klikom na "esc" želim prekiniti ukaze risanja.
Kako to popravim? Kako se s takimi eventi sploh dela?
darkkk ::
Najprej probaj, ali ti eventhandler sploh ujame event, recimo dodaj noter MessageBox.Show("Esc") oz. breakpoint. (mogoče nimaš fokusa prav, oz. kaj drugega, ampak na prvi pogled zgleda koda dodajanja delegata noter ok) (čeprav se to ponavadi doda drugam :) )
Kaj pa sam event handler naredi ti pa ne morem pomagat, kar ti narediš je: 4-im spremenljivkam v lasti forme spremeniš vrednost na false ter nek label popraviš. Ta stvar brez nekega "invalidate-a" ne bo naredila nič "vidnega".
Kaj pa sam event handler naredi ti pa ne morem pomagat, kar ti narediš je: 4-im spremenljivkam v lasti forme spremeniš vrednost na false ter nek label popraviš. Ta stvar brez nekega "invalidate-a" ne bo naredila nič "vidnega".
Zgodovina sprememb…
- spremenil: darkkk ()
JanOlMajti ::
Si "private void Form1_KeyPressed(object sender, KeyPressEventArgs e)" sam napisal, ali ti je funkcijo samo naredilo (klik preko properties events (taka rumena strela))?
japol ::
darkkk: mi ga ne ujame, ker mi label61, ki je v kodi, ne spremeni.
janolmajti: sem uporabil obe varianti, in kodo z uporabo KeyCode, KeyEventArgs,... pa nič od tega ne dela.
Če mi lahko, prosim popravita kodo. Pa še kakšen primer, kako je če delam to na nekem svojem classu (npr.: Class1.cs).
janolmajti: sem uporabil obe varianti, in kodo z uporabo KeyCode, KeyEventArgs,... pa nič od tega ne dela.
Če mi lahko, prosim popravita kodo. Pa še kakšen primer, kako je če delam to na nekem svojem classu (npr.: Class1.cs).
darkkk ::
Ja, ampak ali ti ujame event, ali ti samo ne gre v if ? Ker na prvi pogled zgleda koda za lovljenje eventa ok, ampak lahko pogledam bolj podrobno po kosilu :)
JanOlMajti ::
Tole ti bo delalo:
na tem linku
http://channel9.msdn.com/Forums/TechOff...
protected override Boolean ProcessCmdKey(ref Message msg, Keys keyData) { if (keyData == Keys.Escape) { OnPressEscapeKey(); } return true; } private void OnPressEscapeKey() { MessageBox.Show("Escape Key Is Pressed"); }
na tem linku
http://channel9.msdn.com/Forums/TechOff...
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [c#]izvajanje kodeOddelek: Programiranje | 1083 (817) | LeQuack |
» | [C++] izris v [x,y]Oddelek: Programiranje | 1160 (862) | DuleKrtola |
» | C# - keypressOddelek: Programiranje | 1627 (1358) | urkrajnc |
» | pošiljanje SMS C#Oddelek: Programiranje | 3131 (2624) | Neon87 |
» | [C#]Textbox ki dovoli samo številkeOddelek: Programiranje | 1353 (1217) | darkolord |