いつもお世話になっております<(_ _)>
VB2005で、デザイン時にPictureBoxにContextMenuStripをつけています。
特定の座標が右クリックされた場合だけContextMenuを
表示させたいと思います。
同じコントロール上で、表示を条件分岐させることは可能でしょうか。
いい方法がありましたらご教授ください<(_ _)>
MouseDown イベントあたりに、
If area.Contains(e.Location) Then
PictureBox1.ContextMenuStrip = ContextMenuStrip1
Else
PictureBox1.ContextMenuStrip = Nothing
End If
というコードを書いてみては如何でしょう。
(変数 "area" は、クリック範囲を示す Rectangle です)
ContextMenuStrip の Opening イベントで条件が気に食わなければキャンセル。
どうもありがとうございました。
その方法で思い通りのことが出来ました。
コードでContextMenuStripを切り替える方法をしらなかったので、
いろいろとできることが増えました。
ありがとうございました<(_ _)>
>Hongliang 様
すみません、リロードせず↑の投稿をしてしまったので
アドバイス頂いたのに気づきませんでした。
イベントをキャンセルする方法も覚えておきたいのですが、キャンセルとはどのように書いたらよろしいのでしょうか。「イベントをキャンセル」で検索してみたのですが、見つけられませんでした。
代わりに、インテリセンスのおかげで、
ContextMenuStrip1.Enabled = False
でもOKだということがのおかげでわかったのですが・・・。
e.Cancel = True
でキャンセルできました。
どうもありがとうございました。
ツイート | ![]() |