Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

Disable the WebBrowser control context menu

0.00/5 (No votes)
31 Dec 2008 1  
A simple way to disable the WebBrowser control's context menu.

Introduction

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?

The code

All you have to do is create a handler on the WebBrowser's Document.ContextMenuShowing event. To do this, place the following code in your form load method on a form with a WebBrowser control:

AddHandler Me.WebBrowser1.Document.ContextMenuShowing, AddressOf WebContextMenuShowing

Place this anywhere in the code:

Private Sub WebContextMenuShowing(ByVal sender As Object, ByVal e As HtmlElementEventArgs)
    'displays your contextmenustrip - you could leave it out to
    ' just disable the browsers context menu
    Me.WebBrowser1.ContextMenuStrip.Show(Cursor.Position)
    'suppresses the display of the browsers context menu
    e.ReturnValue = False
End Sub

That's all there is to it!

History

  • Original submittal - 12/31/2008.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here