- ベストアンサー
VB6→VB2005移行におけるpopupmenu機能について
- VB6からVB2005への移行において、ポップアップメニュー機能の実装に困っています。
- VB6のソースコードでは、Form2上で右クリック押下時にポップアップメニューを表示する処理がありますが、VB2005に移行する際に正常に動作しないことが問題となっています。
- ヘルプや検索を調べた結果、VB2005ではContextmenuまたはContextmenustripを使用することが推奨されているようですが、別フォームを呼び出す方法について具体的な例が見つかりませんでした。実現方法を教えていただけると助かります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
あ゛~…ちと酔っ払ってるけど、とりあえず簡単な例を Public Class Form1 Private cms As New ContextMenuStrip Private tsmi As New ToolStripMenuItem("右クリックは無効です") Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load cms.Items.Add(tsmi) Me.ContextMenuStrip = cms End Sub End Class これで、Form1を右クリックするとコンテキストメニューが出る ContextMenuStripにToolStripMenuItemを追加して、それをForm1の コンテキストメニューに割り当ててるのが鍵 ちなみにToolStripMenuItemのフォントとかサイズも変えられるし メニューを切り分けるための線はToolStripMenuItemじゃなくて ToolStripSeparatorを使う 後は自分で調べてみてちょうだい うぃ~ ヒック
その他の回答 (1)
- K-Sogacchi
- ベストアンサー率53% (50/93)
VB6での >Form2.PopupMenu Form1.mnuPop は、Form全体を呼び出すんじゃなくて、Formに設定されたメニューのみを コンテキストメニューとして表示するだけです。 そもそもVB2005とは概念自体が違います。 「Formを表示」という概念から離れましょう。 独り言: 「右クリックは無効です」だけならMessageBoxでもいいような気もするけど… そういう訳にも行かないんでしょうねぇ…
補足
ご回答ありがとうございます。 なにぶん素人で。。 別フォームに設定されたメニューのみを表示、ですね。 これのVB2005での実現方法をご教授いただけると幸いです。 概念が違うとのことですが、そもそも実現できないケースなのでしょうか? すみませんがご教授よろしくお願いいたします。
お礼
ご提示の例を参考に、実装できました。 ありがとうございました。