While developing an application which uses the
WebBrowser control that ships with Visual Studio, I realized I didn't want the default context menu to show up when the user right-clicks in the control because I had my own context menu functionality I wanted to implement. Well, you know the routine, search Google and other dev sites to find the answer. There were many solutions, most involving inheriting from some interface in MSHTML and casting that interface to a document, yadda, yadda, yadda.
It turns out that it was much simpler...is this something new or that no one else knows about, because every other solution was so convoluted?
All you have to do is create a handler on the
Document.ContextMenuShowing event. To do this, place the following code in your form load method on a form with a
AddHandler Me.WebBrowser1.Document.ContextMenuShowing, AddressOf WebContextMenuShowing
Place this anywhere in the code:
Private Sub WebContextMenuShowing(ByVal sender As Object, ByVal e As HtmlElementEventArgs)
e.ReturnValue = False
That's all there is to it!
- Original submittal - 12/31/2008.