DOBON.NETプログラミング道掲示板

■34482 / 1階層)  KeyDownでの右コントロールキーイベント
□投稿者/ Hongliang 大御所(579回)-(2020/06/13(Sat) 14:19:31)
  • アイコン// ひょっとしたらキーボードやキーボードドライバによる影響もあるのかもしれませんが

    Keys列挙体はWindowsのVirtual Key, VKをそのまま転写したものです。
    https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getkeyboardstate
    そして、ctrlキーのL/Rを区別するVK_LCONTROL/VK_RCONTROLは、
    > These left- and right-distinguishing constants are available to an application only through the GetKeyboardState, SetKeyboardState, GetAsyncKeyState, GetKeyState, and MapVirtualKey functions.
    とあるように、非常に限定されたAPIでのみ有効な値になっています。
    Control.KeyDownイベントはWM_KEYDOWNメッセージのラッパであり、ここでは単純にWM_KEYDOWNのWPARAMをKeysとして扱ってるだけなので、Windows/WinFormとしては、KeyDownイベントのKeyEventArgs.KeyDataでL/Rの区別はつけていないというのが仕様と考えられます。

    区別をつけたいのであれば、前述のVK_L*/VK_R*を使えると明言されているAPIを改めて呼び出す必要があるでしょう。
違反を報告
削除キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←KeyDownでの右コントロールキーイベント /Kuroi →Re[2]: KeyDownでの右コントロールキーイベント /Kuroi
 
上記関連ツリー

Nomalアイコン KeyDownでの右コントロールキーイベント / Kuroi (20/06/13(Sat) 12:24) #34481
Nomalアイコン KeyDownでの右コントロールキーイベント / Hongliang (20/06/13(Sat) 14:19) #34482 ←Now
  └Nomalアイコン Re[2]: KeyDownでの右コントロールキーイベント / Kuroi (20/06/14(Sun) 11:07) #34483

All 上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信

Mode/  Pass/


- Child Tree -