Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

C# Get the control at a certain position on a form

This is the inverse question to C# Get a control's position on a form.

Given a Point location within a form, how can I find out which control is visible to the user at that position?

I'm currently using the HelpRequested form event to show a separate help form as shown in MSDN: MessageBox.Show Method.

In the MSDN example the events sender control is used to determine the help message, but the sender is always the form and not the control in my case.

I'd like to use the HelpEventArgs.MousePos to get the specific control within the form.

like image 437
Daniel Ballinger Avatar asked Jan 23 '11 20:01

Daniel Ballinger


People also ask

What C is used for?

C programming language is a machine-independent programming language that is mainly used to create many types of applications and operating systems such as Windows, and other complicated programs such as the Oracle database, Git, Python interpreter, and games and is considered a programming foundation in the process of ...

What is C language?

C is a structured, procedural programming language that has been widely used both for operating systems and applications and that has had a wide following in the academic community. Many versions of UNIX-based operating systems are written in C.

What is the full name of C?

In the real sense it has no meaning or full form. It was developed by Dennis Ritchie and Ken Thompson at AT&T bell Lab. First, they used to call it as B language then later they made some improvement into it and renamed it as C and its superscript as C++ which was invented by Dr.


2 Answers

You can use the Control.GetChildAtPoint method on the form. You may have to do this recursively if you need to go several levels deep. Please see this answer as well.

like image 75
Bryan Avatar answered Sep 23 '22 17:09

Bryan


You can use Control.GetChildAtPoint:

var controlAtPoint = theForm.GetChildAtPoint(thePosition);
like image 39
Reed Copsey Avatar answered Sep 26 '22 17:09

Reed Copsey