There a 2 suggestions I give to you :
- don't use the GotFocus-Event from the ChildControl. The ChildControl gets the Focus only if you Click it. I would take the MouseHover-Event which is fired when the Mouse is over the ChildControl.
- for shifting the Panel itself you should use the Panel.ScrollControlIntoView-Method. When you call this Method you give it the Control to which you want to scroll. Then it looks like :
MyPanel.ScrollControlIntoView(FocusControl);
here FocusControl must be the sender from the Event-Method.