Wie Programmiert man unter C# dass er überprüft welche Taste ich drücke?

2 Antworten

Das geht bei Windows Forms mit dem KeyDown-Event. Das findest du bei den Events deiner Form im Designer:

Bild zum Beitrag

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

Woher ich das weiß:Berufserfahrung
 - (Computer, Technik, PC)
PrincPersia 
Fragesteller
 26.05.2022, 12:00

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.

0
Knomle  26.05.2022, 12:28
@PrincPersia

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

0