VB.NET マウスムーヴ時にShiftキーなどの状態を知るには

解決


まいける  2006-05-01 15:19:12  No: 95239

マウスムーヴ時にShiftキーやCtrlキーが押されているかどうかを知る場合VB6では、MouseMoveイベントの「Shift」の内容を見ればわかりましたが、VB.NETではどのようにしていいかわかりません。どうかお教えください。


じゃんぬねっと  URL  2006-05-01 16:21:14  No: 95240

System.Windows.Forms.Control.ModifierKeys プロパティについて調べてみてください。


まいける  2006-05-01 16:54:17  No: 95241

Dim value as keys

value = Control.ModifierKeys
if value = key.Shift then 'シフトキーだったら
    ・
    ・

って、これだけでよかったんですね。す、すごいです。
どこのどなたか存じ上げませんが、どうもありがとうございました(感謝&感激&土下座)


じゃんぬ  URL  2006-05-02 10:04:42  No: 95242

それだと、他の修飾キーと同時押ししていると排他されちゃうので、正しくはこうですね。

    If (Control.ModifierKeys And Keys.Shift) = Keys.Shift Then
        MessageBox.Show("Shift キーが押されている")
    End If

> どこのどなたか存じ上げませんが、

このレベルであれば、まいける さんもどなたかわかりませんよ。(^^)
まいける さんは、まいける さんですし、
じゃんぬねっと さんは、じゃんぬねっと さんですよね。


じゃんぬねっと  URL  2006-05-02 10:06:08  No: 95243

あっと、言い忘れました。

GetKeyState とほぼ同じ原理だと思うので、
ウィンドウの描画タイミングによってはうまく取得できない場合があるかもしれません。

まあ問題はないと思いますけど。


まいける  2006-05-02 14:33:24  No: 95244

>    If (Control.ModifierKeys And Keys.Shift) = Keys.Shift Then
>        MessageBox.Show("Shift キーが押されている")
>    End If

な、なるほど、す、すごい!
お、恐れ入りました。じゃんぬねっと様ご丁寧にありがとうございました。


※作成する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。







   このエントリーをはてなブックマークに追加