ACCESSのフォームのテキストボックスやコマンドボタンなどのコントロールを右クリックした時にショートカットメニューを表示させないようにする方法です。
フォームに設置したコントロールの「
マウスボタン解放時」(MouseUp)のイベントを以下のVBAにします。
Private Sub コントロール名_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = acRightButton Then ' acRightButton = 2
DoCmd.CancelEvent
End If
End Sub
仕込むイベントは「マウスボタンクリック時」(MouseDown)ではないことに注意してください。
実際に動作させればわかるのですが、マウス右ボタンを離したときにショートカットメニューは現れます。
備考
とにかく右ボタンについて感知させたければ、値をマスクする方法の
If Button And acRightButton <> 0 Then
となるのでしょうか。
ただ、当方環境ではマウスボタンのクリックは左(acLeftButton=1) と右(acRightButton=2)でしか取得できませんでした。
左右同時に押すと Button の値は acLeftButton + acRightButton = 3 になるものだと思ってました。
中ボタン(acMiddleButton = 4)はオートスクロールモードになってしまい、値の取得は出来ませんでした。
('(⊥)')
スポンサーサイト
- http://blogwizhook.blog.fc2.com/tb.php/219-911fca0e
トラックバック
コメントの投稿