Kezdőoldal » Számítástechnika » Programozás » C#-ban hogy lehet azt, hogyha...

C#-ban hogy lehet azt, hogyha egyszerre lenyomok 2 gombot, valami történjen?

Figyelt kérdés

Én úgy próbálkoztam, hogy


if (keyData == Keys.K && keyData == Keys.J)


De nem történt semmi...


2012. júl. 7. 18:46
 1/10 anonim ***** válasza:
Szorítok .
2012. júl. 7. 21:08
Hasznos számodra ez a válasz?
 2/10 A kérdező kommentje:
Oké, köszönöm a hasznos és kielégítő választ! Valaki akinek ötlet?
2012. júl. 7. 21:23
 3/10 anonim ***** válasza:

private void Form1_KeyDown(object sender, KeyEventArgs e)

{

if (e.Modifiers == Keys.Alt && e.KeyCode == Keys.A)

{

textBox1.Text = "Hii";

}


}


Ez csak akkor fog működni ha a form aktív,KeyPress eseménnyel nem működik, csak KeyDown és KeyUp.

2012. júl. 8. 00:06
Hasznos számodra ez a válasz?
 4/10 A kérdező kommentje:

Valamiért nem működik.:/

De azért azt legalább tudom, hogy KeyPress-el nem működik, majd próbálkozok. Azért megy a +.

2012. júl. 8. 11:45
 5/10 A kérdező kommentje:

De megnéztem úgy hogy

textBox1_KeyDown és úgy megy...

"Ez csak akkor fog működni ha a form aktív"

Ezt a mondatodat hogy érted?

2012. júl. 8. 12:22
 6/10 A kérdező kommentje:

Oké, megvan. Most meg az a hibája hogy nem fogadja el úgy, hogy mindkettő KeyCode.

Muszály úgy lennie hogy egyik

e.Modifiers == Keys.Shift

másik

e.KeyCode == Keys.K

különben nem csinál semmit...

2012. júl. 8. 12:28
 7/10 anonim ***** válasza:

Ok mivel jó kedvemben vagyok kicsit bővében kifejtem a dolgot.


Először mi az alap események


KeyDown = Amikor lenyomod a billentyűt

KeyPress = Amikor lenyomod a billentyűt majd leveszed róla az újod.

KeyUp = Amikor a lenyomott gomb -ról leveszed az újod.


Azért a KeyDown kell mert ha két gombot nyomsz le akkor jön létre az esemény tehát nyomva tartod a gombot.


KeyPress -nél nem tudod ugyanezt megcsinálni mind a 2 gombbal millisecundumra pontosan.


A másik dolog ne a forráskódba írd hanem hozd létre az eseményt, több helyre is beíródik az esemény nem csak ott ahol látod.


Tehát jobb oldalt a kis villámjel és ott keresd meg a KeyDown eseményt.


A másik fontos dolog, soha az éltben nem fogja érzékelni az eseményt ha nem a form van a fókuszban.


Na most jöjjön amit te akarsz.


private void Form1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)

{


if (Keyboard.IsKeyDown(Key.D) && Keyboard.IsKeyDown(Key.A))

{

textBox1.Text += "+";

}

}


Referenciákhoz ad hozzá a WindowsBase -t és a PresentationCore -t.

2012. júl. 8. 14:23
Hasznos számodra ez a válasz?
 8/10 anonim ***** válasza:
Jah igen a using System.Windows.Input; -ot kihagytam :)
2012. júl. 8. 14:25
Hasznos számodra ez a válasz?
 9/10 A kérdező kommentje:

Valamiért az using Windows.System.Input-ra hibát ad.

Ja és azt elmondanád hogy hogy kell referenciákat beírni?:s

Bocsi csak még kezdő vagyok.

2012. júl. 8. 18:57
 10/10 A kérdező kommentje:
De azért a +-ok gyorsan repülnek is.
2012. júl. 8. 18:58

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!