You've answered your own question, Sam. Given that you have your own textbox class, it would make perfect sense to add the code to the GotFocus at the class level.
That said, you probably use that same textbox class for all your textboxes, not just the ones you place in the scrolling region. It might seem a bit wasteful to have to execute the scrolling code every time a textbox gets focus, even though only a minority of textboxes need it.
There are two possible solutions to that. First, create a subclass of your textbox class, exclusively for use in the scrolling region; and include the scrolling code in the subclass, not the base class. But that's not ideal, because the whole thing would get messy if you later decide to create further classes lower down the hierarchy.
The other option is add a property to the textbox class that acts as a sort of master switch. The property would be set to .F. by default; you would then only do the scrolling stuff when it was set to .T. Going further, you could set it to .T. for all the controls in the scrolling region, via a single THISFORM.Setall() call in the Init of the scrolling form.
Anyway, I'm glad you've found the scrolling region idea useful. As far as I recall, this is the first time I've heard of anyone using it (apart from myself).
Mike
__________________________________
Mike Lewis (Edinburgh, Scotland)
Visual FoxPro articles, tips and downloads