I think you may be 'closer' to understanding the dynamics of how cursor and mouse are handled in WinForms than you may think.
Try putting a TextBox on a WinForm, and then changing the 'Cursor property from the default (I-Beam) to some other value: now run the WinForm application, and observe that the cursor changes, but you can still enter text in the TextBox. And then, think about what
must have happened 'behind the scenes' for the cursor to have automatically changed.
Both mouse movement, and keyboard events which, after all, originate from external devices, are handled at a 'lower-level' in Windows ... they have to be for responsiveness ... using hardware interrupts. So the Windows OS receives these messages with a high-level of priority for handling.
Every instance of a WinForm Control you create, at Design-Time or Run-Time, will register itself automatically to receive certain events from the 'message-pump' of the WinForm Application which routes events it 'receives' from the Windows OS .
When you 'hook-up' an EventHandler for a Control in your code, you essentially
subscribe to the WinForm application's message-pump's messages for that Control which the control
publishes.
WinForms Controls vary in the extent to which they expose Events, directly just by creating an instance of them, and in whether or not you can, via sub-classing, over-ride certain events, methods, etc., that are not exposed by creating an instance.
In the case of using the WebBrowser Control in WinForms, there are special issues relating to the fact that what you are interacting with, as a programmer, is a 'wrapper' over a very complex software entity, InternetExplorer, that has its own Window Management and Message Pump system going on, and that is constrained, for security reasons, in many ways.
Suggestions:
1. see the Visual Studio documentation for these topics
a. How Keyboard Input Works
b. WndProc
c. PreProcessMessage
d. KeyBoard Input
e. Mouse Input in a Windows Forms Application
f. Mouse Pointers in Windows Forms
g. How Mouse Input Works in Windows Forms
h. Control.MousePosition
2. WebBrowser docs
a. WebBrowser Customization I[
^]
b. WebBrowser Customization II[
^]