This is retrieving the modified code using both Control.GetChildAtPoint and Control.PointToClient to recursively search for the control with the tag defined at the point that the user clicked.
private void Form1_HelpRequested(object sender, HelpEventArgs hlpevent)
{
Control senderControl = sender as Control;
Control controlWithTag = senderControl;
do
{
Point clientPoint = controlWithTag.PointToClient(hlpevent.MousePos);
controlWithTag = controlWithTag.GetChildAtPoint(clientPoint);
} while (controlWithTag != null && string.IsNullOrEmpty(controlWithTag.Tag as string));
}
source
share