Wie Programmiert man unter C# dass er überprüft welche Taste ich drücke?
Hallo.
Also ich möchte unter C# so Programmieren, dass wenn ich z. B. Y Taste drücke, das er dann diese Code ausführen muss.
Also so z. B.
if (Y Taste gedrückt)
{
//Diese Code ausführen
}
oder
if (STRG Taste gedrückt)
{
//Diese Code Ausführen
}
Weiß jemand wie das geht? Denn ich habe schon mal Gegooglet, aber da wird nur komplizierte lange Code mit über 20 Zeilen vorgeschlagen. Ich möchte das so einfach wie möglich machen, so wenig wie möglich Coden.
2 Antworten
Das geht bei Windows Forms mit dem KeyDown-Event. Das findest du bei den Events deiner Form im Designer:
Dadurch wird im Designer deiner Form folgendes hinzugefügt, was beim Initialisieren deiner Form das entsprechende Event anlegt:
this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.Form1_KeyDown_1);
und in der Klasse deiner Windows Form die entsprechende Funktion:
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
}
Die Funktion wird bei jedem Tastendruck aufgerufen und über die KeyEventArgs kannst du u.A. ermitteln welche Taste gedrückt wurde.
Beispiel für Y oder STRG:
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Y || e.KeyCode == Keys.Control)
{
// hier dein Code
}
}
Alternativ kannst du natürlich den Eventhandler selbst anlegen. Dafür brauchst du den Designer nicht. Hierfür einfach die erste Zeile die das Event anlegt zum Beispiel in deinen Konstruktor kopieren.
LG Knom

Dann hast du nicht das KeyDown Event angelegt sondern das KeyPress. KeyPress funktioniert anders und ist nicht für gleichzeitige Tastendrücke geeignet. Schau nochmal im Designer unter den Events. Die liegen genau übereinander.
LG Knom
Leider funktioniert bei mir Keycode Befehl nicht. Ich bekomme Rote Linie und es steht: "KeyPressEventArgs" enthält keine Definition für "KeyCode", und es konnte keine zugängliche KeyCode-Erweiterungsmethode gefunden werden, die ein erstesArgument vom Typ "KeyPressEvenetArgs" akzeeptiert (möglicherweise fehlt eine using-Direktivee oder ein Assemblyverweis).
Also warum das bei andere Leute funktioniert, ist mir Rätselhaft. Aber bei mir in "e." gibt es nicht mal KeyCode. Vielleicht haben nutzer heimlich Visual Studio Modifiziert.