C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

ProcessDialogKeyでShiftと矢印キーの同時

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■88454 / inTopicNo.1)  ProcessDialogKeyでShiftと矢印キーの同時
  
□投稿者/ tarou (1回)-(2018/09/02(Sun) 09:20:54)

分類:[.NET 全般] 

ProcessDialogKeyでShiftと矢印キーの同時を押しを認識するにはどのようにすれば良いですか?



    Protected Overrides Function ProcessDialogKey(ByVal keyData As Keys) As Boolean

        Select Case keyData
            Case Keys.Shift And Keys.Up
		'コード
            Case Else
                Return MyBase.ProcessDialogKey(keyData)
        End Select
        Return True
    End Function

のように、Andで繋げてもうまくいきません。

KeyDownの場合には

If Control.ModifierKeys = Keys.Shift Then 
でうまくいったのですが、
ProcessDialogKeyではどのようにしたら良いですか?





引用返信 編集キー/
■88455 / inTopicNo.2)  Re[1]: ProcessDialogKeyでShiftと矢印キーの同時
□投稿者/ Hongliang (683回)-(2018/09/02(Sun) 10:07:01)
Keys.ShiftはShiftキーの押下そのものを意味します。
修飾キーとしては、Keys.ShiftKeyを使用します。
Ctrlキーも同じ。
// Altだけは、キーはKeys.Menu、修飾キーはKeys.Altとなりますが。

あと、複数の列挙体を組み合わせるのは、AndではなくOrです。
引用返信 編集キー/
■88456 / inTopicNo.3)  Re[2]: ProcessDialogKeyでShiftと矢印キーの同時
□投稿者/ tarou (2回)-(2018/09/02(Sun) 11:28:44)


ありがとうございます。
ORでうまくいきました。

ただ、

> Keys.ShiftはShiftキーの押下そのものを意味します。
> 修飾キーとしては、Keys.ShiftKeyを使用します。


これは逆ではないでしょうか?

https://dobon.net/vb/dotnet/control/keyevent.html
https://docs.microsoft.com/ja-jp/dotnet/framework/winforms/how-to-determine-which-modifier-key-was-pressed

Keys.Shiftが修飾子キーで
Keys.ShiftKeyがキーそのものを表すので
今回の場合には
Keys.Shift
を使うのが正しいと思うのですが
合っていますでしょうか?

あと、どちらを使ったとしても機能的には違いはないのでしょうか?


引用返信 編集キー/
■88457 / inTopicNo.4)  Re[3]: ProcessDialogKeyでShiftと矢印キーの同時
□投稿者/ Hongliang (684回)-(2018/09/02(Sun) 11:42:46)
> Keys.Shiftが修飾子キーで
> Keys.ShiftKeyがキーそのものを表すので
> 今回の場合には
> Keys.Shift
> を使うのが正しいと思うのですが
> 合っていますでしょうか?
仰るとおりです。
私の勘違いでした、すいません。

> あと、どちらを使ったとしても機能的には違いはないのでしょうか?
CIntしてみればわかりますが、2つの値は全く別物です。
引用返信 編集キー/
■88458 / inTopicNo.5)  Re[4]: ProcessDialogKeyでShiftと矢印キーの同時
□投稿者/ tarou (3回)-(2018/09/02(Sun) 16:20:51)
ありがとうございます。

解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ