QUESTION How do I implement auto tab moving in a VisualAge Text field ? ANSWER You can implement auto tabbing in VisualAge by writing some script and making a connection to that script. For example: Suppose you have two text fields. I go into the settings of TextField1 and set its' text limit to 5. I then connect the object event (make sure it is the event) of the text entry field to the following script: autoTab | position limit | position := ((self subpartNamed: 'TextField1') queryCursorPosition). limit := (self subpartNamed: 'TextField1') textLimit. (position = limit) ifTrue: [(self subpartNamed: 'TextField2') setFocus]. Now, if the user types 5 characters in the first text field, focus is automatically set onto the second text field. *** Is there a way to just have it tab to the next field? (I have around 10 fields and would rather avoid hard-coding all the names.) Use some code like: | widget list index next | widget := (self subpartNamed: 'Window') framingWidget. list := widget tabList. index := list indexOf: ((self subpartNamed: field name) primaryWidget). next := list at: (index + 1). (next userData) setFocus We hooked this to a text field and passed in the self of the text field as the parameter. This code is given "as-is." That is to say that it has some drawbacks. First, when you get to the end, you will have to know the number to reset it to. We don't have that check in the code above. And, when it gets to a group of pushbuttons, I'm not sure of the behavior (it may just go to the first in a group). This is a good start. The concerns mentioned can be checked for in script.