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

KeyUpイベントでのShift+NumPad

環境/言語:[WindowsVistaBusiness VB.NET2005]
分類:[.NET]

はじめまして お世話になります

KeyUpイベントで質問があります

Shiftキーを押しながらテンキーの8を押した状態を判断したいと思い
下記のコードを試験的に実行してみましたがまったく反応してくれません

--- 以下コード ---

Private Sub Form1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyUp

If e.KeyCode = Keys.NumPad8 Then
If e.Shift Then
yc = yc + 1
Else
yc = yc - 1
End If
End If
End sub

--- コードここまで

テンキー8ではなくRキーを指定
e.KeyCode = Keys.R
のようにするとこれは反応します

テンキーとShiftキーを合わせて取得する方法はないものでしょうか??

皆さんよろしくお願いいたします
■No21227に返信(かわいさんの記事)

>  Shiftキーを押しながらテンキーの8を押した状態を判断したいと思い
> 下記のコードを試験的に実行してみましたがまったく反応してくれません

そうですね。反応しないと思います。

> Private Sub Form1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyUp
>         System.Console.WriteLine("KEY:{0} {1}", e.KeyCode, e.Shift);
>         If e.KeyCode = Keys.NumPad8 Then
>             If e.Shift Then
>                 yc = yc + 1
>             Else
>                 yc = yc - 1
>             End If
>         End If
> End sub

などとして、どのようなキーが押されているのか調べてみるといいと思います。
たぶん想定したキーとは違うキーが入力されているのがわかるはずです。

なぜか?は、テンキーをしげしげと見つめてみるか、あるいは「テンキー SHIFT」
あたりで検索するとわかるかもしれません。
(歴史的経緯があるので、そういうことになっています)

> テンキーとShiftキーを合わせて取得する方法はないものでしょうか??

KeyUpイベントからでは難しいかもしれませんね。
あっ 迂闊でした

浅学ものゆえご迷惑をおかけいたしました

落ち着いて検証すべきでした すみません

早速のご連絡ありがとうございました

■No21231に返信(ぽぴ王子さんの記事)
> ■No21227に返信(かわいさんの記事)
>
>> Shiftキーを押しながらテンキーの8を押した状態を判断したいと思い
>>下記のコードを試験的に実行してみましたがまったく反応してくれません
>
> そうですね。反応しないと思います。
>
>>Private Sub Form1_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyUp
>> System.Console.WriteLine("KEY:{0} {1}", e.KeyCode, e.Shift);
>> If e.KeyCode = Keys.NumPad8 Then
>> If e.Shift Then
>> yc = yc + 1
>> Else
>> yc = yc - 1
>> End If
>> End If
>>End sub
>
> などとして、どのようなキーが押されているのか調べてみるといいと思います。
> たぶん想定したキーとは違うキーが入力されているのがわかるはずです。
>
> なぜか?は、テンキーをしげしげと見つめてみるか、あるいは「テンキー SHIFT」
> あたりで検索するとわかるかもしれません。
> (歴史的経緯があるので、そういうことになっています)
>
>>テンキーとShiftキーを合わせて取得する方法はないものでしょうか??
>
> KeyUpイベントからでは難しいかもしれませんね。
解決済み!

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