KeyCodeとKeyData
この2つはKeyUp, KeyDownイベントが発生した際に得られるKeyEventArgsのプロパティだが、
単純にキーを1つ押しただけだと同じ結果が得られるだけのようにしか感じられない。
…が、ShiftキーやControlキーが同時に押されている場合では結果が異なってくる。
例えば…
- a+Shiftの場合
- KeyData ... 65601
KeyCode ... 65
- Shiftの場合
- KeyData ... 65552
KeyCode ... 16
…と、変わってくる。
実際にキーのチェックを行う場合、KeyDataだと
if( e->KeyData == (Keys.A|Keys.Shift) )
KeyCodeだと
if( e->KeyCode == Keys.A && e->KeyCode.Shift )
のような感じで、チェック方法が変わってくるご様子。
最終更新:2009年04月13日 14:31