KeyDown-Ereignis nicht ausgelöst
Ich habe ein Formular, das der Benutzer aufgefordert wird, drücken Sie die Q - Taste 3 mal. Wenn er so Tat, die form soll verschwinden (das ist, warum ich ein randloses Formular, um zu verhindern, schlagen die X-Button
). Die form selbst ist nicht modal.
Dies ist der code, den ich verwenden, um zu behandeln, die KeyDown
Veranstaltung:
private void ConfirmForm_KeyDown_1(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Q)
{
if (++count == 3)
this.Close();
}
}
Nun möchte ich nicht haben ein zusätzliches Element für diese form in der Taskleiste, so dass ich die ShowInTaskbar
Eigenschaft false
. Das problem ist, dass die KeyDown
Ereignis nicht mehr gefeuert wird, wenn das Formular nicht in der Taskleiste angezeigt - wenn es soweit ist, alles funktioniert Prima.
Weiß jemand, wie kann ich diesen Fehler beheben kann?
InformationsquelleAutor lukew | 2011-10-16
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die KeyPreview-Eigenschaft des Formulars auf True gesetzt werden muss, damit die form erhalten wichtige Ereignisse, wenn es um andere Steuerelemente auf dem Formular, das den Fokus erhalten kann.
Edit: Auch, wenn Sie das verhindern wollen, schlagen Sie die X-Taste, können Sie die ControlBox auf False, blendet die Titelleisten-Schaltflächen.