Próbowałem czegoś takiego:
private void Form1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
if ((Keys) e.KeyValue == Keys.Escape)
this.Close();
}
Ale to nie działa.
Potem spróbowałem:
protected override void OnKeyDown(KeyEventArgs e)
{
base.OnKeyDown(e);
if (e.KeyCode == Keys.Escape)
this.Close();
}
I nadal nic nie działa.
KeyPreview w moich właściwościach formularzy Windows Forms jest ustawiony na true ... Co robię źle?
1 odpowiedź
To zawsze będzie działać, niezależnie od odpowiedniego przypisania modułu obsługi zdarzeń, KeyPreview, CancelButton itp .:
protected override bool ProcessCmdKey(ref Message msg, Keys keyData) {
if (keyData == Keys.Escape) {
this.Close();
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}