- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:右クリックイベント)
右クリックイベントを使った別のフォーム表示方法
このQ&Aのポイント
- Windows XP、Access2000での開発で、サブフォーム上のテキストボックスを右リックすると別のフォームが表示される処理を作りたいです。
- VBAのコードを使用してマウスの右クリックイベントを検知し、別のフォームを表示する方法を知りたいです。
- マウスの右クリックイベントを普通のクリックイベントと同じように処理する方法について教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
テキストボックスのコンテキストメニュー(右クリックをしたときに表示されるメニュー)の表示を抑止してやれば、フォーカスがテキストボックスに戻ることを防げるため、希望通りの動作が実現できます。 '子フォーム本体のフォームモジュール Private Sub テキストボックス名_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = acRightButton Then Me.ShortcutMenu = False '←追加部分 DoCmd.OpenForm "フォーム名" End If End Sub ただし、このままではサブフォームのコンテキストメニューが全く表示されなくなってしまうので、親フォームがアクティブになったときにプロパティを戻してやる必要があります。 '親フォームのフォームモジュール Private Sub 親フォーム_Activate() Me.子フォーム.Form.ShortcutMenu = True End Sub もしかしたら違うかもしれませんが、独自のコンテキストメニューを表示したいのではないですか?もしそうだとしたら専用の方法があるので、そちらを使用したほうが良いと思います。
お礼
mach999さん、ありがとうございます。 マウスダウンのイベント時にフォーカスが テキストボックスに戻ることを防げるようにすればよかったんですね。 サブフォームに表示された一覧の情報を右クリックすることにより、 それの修正を行うための画面を表示させたかったので、 コンテキストメニュー自体が出ないように設定していました。 教えていただいた方法で出来ました。 ありがとうございます。