• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:右クリックイベント)

右クリックイベントを使った別のフォーム表示方法

このQ&Aのポイント
  • Windows XP、Access2000での開発で、サブフォーム上のテキストボックスを右リックすると別のフォームが表示される処理を作りたいです。
  • VBAのコードを使用してマウスの右クリックイベントを検知し、別のフォームを表示する方法を知りたいです。
  • マウスの右クリックイベントを普通のクリックイベントと同じように処理する方法について教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • mach999
  • ベストアンサー率75% (36/48)
回答No.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 もしかしたら違うかもしれませんが、独自のコンテキストメニューを表示したいのではないですか?もしそうだとしたら専用の方法があるので、そちらを使用したほうが良いと思います。

saru38
質問者

お礼

mach999さん、ありがとうございます。 マウスダウンのイベント時にフォーカスが テキストボックスに戻ることを防げるようにすればよかったんですね。 サブフォームに表示された一覧の情報を右クリックすることにより、 それの修正を行うための画面を表示させたかったので、 コンテキストメニュー自体が出ないように設定していました。 教えていただいた方法で出来ました。 ありがとうございます。

関連するQ&A

専門家に質問してみよう