Click here to Skip to main content
12,954,522 members (57,869 online)
Click here to Skip to main content
Add your own
alternative version

Tagged as


48 bookmarked
Posted 6 Jan 2009

How To Tell What is Clicked in a WebBrowser Control

, 6 Jan 2009 Public Domain
Rate this:
Please Sign up or sign in to vote.
This article explains how to grab the HTML Element that was clicked in a WebBrowser control


This is my first submission. It is small and will be useful for beginners.

This article will demonstrate how you can tell what is selected under the cursor inside a WebBrowser control, using your own custom ContextMenu. Have you ever wanted to replace the default Internet Explorer ContextMenu? This should help you fully achieve that goal.


I am currently writing a WebBrowser application for kids. Everything worked great, and I assumed I was near completion... except for that pesky - clearly Internet Explorer - ContextMenu.

Getting a custom ContextMenu to work is not the focus of this article, as it is accomplished in a few easy steps. The focus of this article is being able to provide functionality close to what Internet Explorer presents, by providing the user with a different menu for different elements on the page. 

For example, "Save Picture" when an image is clicked, or "Copy Shortcut" when a link is clicked. 

Using the Code 

I have included a sample project of what I will outline here.

First off, we need to translate the mouse coordinates on the screen, into a Point object:

Point ScreenCoord = new Point(MousePosition.X, MousePosition.Y); 

Now, we must create the coordinates of the browser, based off the coordinates of the screen:

Point BrowserCoord = webBrowser1.PointToClient(ScreenCoord);

Now we can use the WebBrowser documents GetElementFromPoint method to retrieve the element that has been clicked:

HtmlElement elem = webBrowser1.Document.GetElementFromPoint(BrowserCoord);

Now, we can use this element to see what has been clicked:

switch (elem.TagName)
    case "A":
        //! We have clicked a link
    case "IMG":
        //! We have clicked an image
        //! This is anywhere else

Points of Interest

I pulled my hair out for a fairly long time searching for a way to do this. I couldn't find anything, even here on The Code Project. So I figured this would be helpful for some people. Note that once you have the element, you can do anything with it, for example, using GetAttribute to retrieve the SRC of an image to download it, etc.


  • 1/7/09 - First submission - all that's needed, to be honest!
  • 1/8/09 - Attempted to clarify the goal of the article


This article, along with any associated source code and files, is licensed under A Public Domain dedication


About the Author

Software Developer (Senior) RSPCA
Australia Australia
I am a young developer from Australia. I have been programming since I was 11, when I started with Visual Basic. I have since moved onto a degree in C++ (with an emphasis on game development) and I am currently the Application/Web Developer for RSPCA Victoria (, which is a not-for-profit organisation for the protection of animals.

I enjoy: my young family - my partner and my daughter - Mortal Kombat, Aussie Beer, C++, C#, any form of music not including Opera and my dog "Buddy".

You may also be interested in...

Comments and Discussions

Questionu have done a fentastic job. Pin
Member 127599716-Oct-16 2:15
memberMember 127599716-Oct-16 2:15 
GeneralMy vote of 5 Pin
berny227-May-16 15:35
memberberny227-May-16 15:35 
QuestionVote of 5 Pin
Member 1054303422-Mar-14 14:17
memberMember 1054303422-Mar-14 14:17 
QuestionEpub Reader Pin
Member 848098020-May-13 23:46
memberMember 848098020-May-13 23:46 
GeneralThanks Pin
shihab_leo18-Aug-11 10:04
membershihab_leo18-Aug-11 10:04 
GeneralMy vote of 5 Pin
rutstyle21-Jan-11 5:20
memberrutstyle21-Jan-11 5:20 
Generala slight clarification ... ? and thanks ... Pin
BillWoodruff6-Jan-09 15:50
memberBillWoodruff6-Jan-09 15:50 
GeneralRe: a slight clarification ... ? and thanks ... Pin
chemicalNova7-Jan-09 11:18
memberchemicalNova7-Jan-09 11:18 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Terms of Use | Mobile
Web02 | 2.8.170525.1 | Last Updated 6 Jan 2009
Article Copyright 2009 by Simon_Whitehead
Everything else Copyright © CodeProject, 1999-2017
Layout: fixed | fluid