Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Na dogadjaj KeyDown,kako da programski "pritisnem dugme"?

[es] :: .NET :: Na dogadjaj KeyDown,kako da programski "pritisnem dugme"?

[ Pregleda: 2394 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

vbvlada
Petrović Vladimir
Beograd

Član broj: 59233
Poruke: 209
194.106.184.*



Profil

icon Na dogadjaj KeyDown,kako da programski "pritisnem dugme"?19.06.2007. u 18:58 - pre 204 meseci
Radim neki programcic gde imam tastaturu napravljenu od dugmica i zelim da kada se pritisne odredjeni taster na pravoj tastaturi da se vizuelno prikaze kao da se kliknulo dugme koje odgovara tasteru,recimo da izgleda kao da se stvarno kliknulo ili da se promeni boja na kratko(mozda mi ovo vise odgovara)
Metoda PerformClick ne pokazuje vizuelno nista,to sam probao...
Zna li neko kako da to uradim?
A vi,kako 'te?
 
Odgovor na temu

Pharos
Pančevo

Član broj: 20664
Poruke: 1029
*.adsl.static.sezampro.yu.



+2 Profil

icon Re: Na dogadjaj KeyDown,kako da programski "pritisnem dugme"?19.06.2007. u 23:56 - pre 204 meseci
U key down eventu odrediš koje si dugme pritisnuo i obojiš to dugme na virtuelnoj tastaturi.
U key up eventu vratiš boju svih dugmića na podrazumevanu.
Jbt kolega, šta će Ćirović da ti kaže :)
Nije gotov domaći, a?

edit:

Evo da pojasnim.
Code:

private void Form1_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.F)
        button2.BackColor = Color.Red;
}


Ako si pritisnuo taster F, button2 na virtuelnoj tastaturi će promeniti boju u crvenu.
Ovo radiš na divljaka za svaki taster posebno. Ako nisi koristio designer već si dugmiće programski kreirao, postoji način da se dosta pojednostavi kod.
Kada otpuštaš taster, tada bi trebao da pozoveš Key up event

Code:

private void Form1_KeyUp(object sender, KeyEventArgs e)
{
    foreach (Control c in Controls)
        if (c is Button) c.BackColor = BackColor;
}

Sad tu ne moraš da vraćaš BackColor svih dugmića, već samo onog kog otpuštaš.
Važno je da u konstruktoru klase staviš

Code:

KeyPreview = true;


Inače se može desiti da netje da radi :)

[Ovu poruku je menjao Pharos dana 20.06.2007. u 01:16 GMT+1]
77 77 77 2E 65 73 6E 69 70 73 2E 63 6F 6D
 
Odgovor na temu

vbvlada
Petrović Vladimir
Beograd

Član broj: 59233
Poruke: 209
*.adsl.beotel.net.



Profil

icon Re: Na dogadjaj KeyDown,kako da programski "pritisnem dugme"?20.06.2007. u 18:05 - pre 204 meseci
Hvala Pharose na ovako detaljnom odgovoru,da vise ovako strucnih ljudi koje ne mrzi da ovako odgovore... :)
A vi,kako 'te?
 
Odgovor na temu

Pharos
Pančevo

Član broj: 20664
Poruke: 1029
*.adsl-2.sezampro.yu.



+2 Profil

icon Re: Na dogadjaj KeyDown,kako da programski "pritisnem dugme"?20.06.2007. u 18:06 - pre 204 meseci
Citat:
vbvlada: Hvala Pharose

Za tebe sam Pharke

[mod: ok, ne mogu sebe da nateram da ovo obrisem iako bi trebao ostaje poruka, al zuti karton da opravdas]

[Ovu poruku je menjao mmix dana 20.06.2007. u 19:43 GMT+1]
77 77 77 2E 65 73 6E 69 70 73 2E 63 6F 6D
 
Odgovor na temu

[es] :: .NET :: Na dogadjaj KeyDown,kako da programski "pritisnem dugme"?

[ Pregleda: 2394 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.