Hi
Ich habe ein Problem mit dem KeyDown Event.
Ich möchte, wenn ich die entfernen Taste drücke das aktuelle listView Element auslesen lassen und dann aus einer SQL Tabelle löschen lassen.
Das löschen, sowie das auslesen funktioniert einwandfrei-also mit einem Button.
Folgendes Event habe ich erstellt.
private void listView1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
if (e.KeyCode == Keys.Delete)
{
MessageBox.Show("Geht");
e.Handled = true;
}
}
Kann mir jemand evtl. sagen wo mein Fehler liegt?
Ich bin schon seit gestern Mittag verzweifelt am googlen und probieren, ob es irgendwie geht...
Debug benutzt? Kommst Du überhaupt in den Event rein..?
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Hab ich gerade versucht. Leider nein.
Habe ich eventuell etwas bei meinem Code falsch gemacht?
Die Option KeyPreview habe ich in meiner Form aktiviert. Allerdings wird die Form2, in der sich das Event befindet, durch einen Button in Form1 geöffnet. Muss ich die KeyPreview dort auch aktivieren oder spielt das keine Rolle?
Hallo,
ich hatte bei einem Projekt auch dieses Problem, dass offenbar das KeyDown-Event nicht zuverlässig gefeuert wird.
Bei mir hat dann folgendes geholfen
protected override bool ProcessDialogKey(Keys keyData)
{
if (keyData == Keys.Delete)
{
// Aktion
}
return base.ProcessDialogKey(keyData);
}
Du musst dann allerdings prüfen, ob dein Listview gerade aktiv ist, weil du für das gesamte Fenster die KeyDown-Events abfängst.
Gruß
Maik
Hallo DeNico,
die Tatsatur-Events gehen nur an das Control mit dem Focus. Wenn das ListView den Focus nicht hat, bekommt es keine Events.
Mit KeyPreview gehen die Events zusätzlich an das Form (aber nicht zusätzlich an das ListView), egal welches Control den Focus hat.
Außerdem muss der EventHandler natürlich überhaupt registriert sein, siehe [FAQ] Eigenen Event definieren / Information zu Events (Ereignis/Ereignisse).
Das fällt allerdings alles unter Grundlagen, siehe [Hinweis] Wie poste ich richtig? Punkt 1.1.1.
herbivore