I am not fully sure about this, but I seem to be observing cases where focus shifts automatically from one control to another, even after I explicitly programmatically set the focus to control that I want to have focused. Maybe it has to do with the control in question being a panel, and it seems that WinForms is happier to have a textbox focused than a panel.
Well, first of all, can somebody provide expert insight on this matter? And also, if it is indeed possible for the focus to change without explicit order from me (whether user action or programmatic) is it possible to programmatically distinguish the resulting Leave and Enter events? That is, I would like to programmatically counteract Leave/Enter events not caused by myself, but I still want to allow the user to change focus normally as part of work with the GUI.