しらいしさん…

linuxに1000回くらい殺されてるしとりまmicrosoft様をageてくわ

keyPressとkeyDownとkeyUpイベントって結局何が違うんだ

正直な話VisualStudio上のイベントプロパティの説明文が畜生すぎる

発生タイミング

1.keyDown

2.keyPress

3.KeyUp

ここまではまあわかるね。単語的にね。えらい。ただ、そもそもkeyDownとkeyPressは機能が異なるので、発生タイミングはそれほど意味を持たないかもしれない。

発生条件と返却・処理値

keyPress
  • 文字キーを押された時のみ発生する
  • 主にChar(keyChar)を処理・返却する
  • 入力された「文字」の判定をする際に使う
  • 下図の範囲

f:id:HSShiraisi:20170626100204j:plain

keyDown、keyUp
  • 修飾キーを含めた全てのキーが押された時に発生する
  • キーコード(e.KeyCode、Keys)とかキーの機能オブジェクト(enumだったりboolだったり)や関数(ProcessTabKey)とかを処理・返却する
  • 修飾キー(方向キーとかEnterとかTabとか)が入力されたことを検知する時に使う事が多い 
  • 下図の範囲

f:id:HSShiraisi:20170626102746j:plain

keyUp・keyDownだとこことか

C# のキーイベントであるKeyDownイベントとKeyUpイベントの基本的な使用例 - Yahoo!知恵袋

C# にて、Shiftキー、又は、 Controlキー、又は、 Altキーを押しながら、文字キー等を押した場合のKeyDownイベントとKeyUpイベントの使用例 - Yahoo!知恵袋

って知恵ノート終わるんかいお前…

後でこっそりコピーしておきたいけどこの作者のノート量勉強にはなるけどえげつないから全部は確保しきれないよ…クソーッ