初めてのC#その4

またしてもC#関連だ。
KeyDownイベントではKeyEventArgsにKeyCodeやKeyData、KeyValueなどのプロパティが取得できるが、KeyPushイベントではKeyCharのみとなる。
F1-F12、ALT、INS、DELなどの特殊キーはKeyDownイベントは発生するが、KeyPushは発生しない。
以下、検証コード。


private void onForm1KeyDown(object sender, KeyEventArgs e)
{
label1.Text = String.Format("Key Code {0, 0:X8}", Convert.ToInt32(e.KeyCode));
label3.Text = "";
}

private void onForm1KeyPress(object sender, KeyPressEventArgs e)
{
label2.Text = String.Format("Key Char {0, 0:X8}", Convert.ToInt32(e.KeyChar));
}

private void onForm1KeyUp(object sender, KeyEventArgs e)
{
label1.Text = "";
label2.Text = "";
label3.Text = "Key Up";
}

ASCIIコード表に無いものは、KeyPressイベントを発生しないということかな?