あるコントロールにフォーカスがあるときにキーが押されたかどうかの判定には、KeyDown,KeyPress,KeyUpイベントを使う。
KeyPressは文字以外のキーでは発生しないことに注意。最初、Deleteキーの判定に使おうとして、何故動かないのか悩んでしまった。
KeyPressでEnterキーを判定する例は次の通り。
private void textBox1_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == (char)Keys.Enter) { ... } }
KeyDownでDeleteキーを判定する例は次の通り。
private void listBox1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Delete) { ... } }