Ed,
The BaseClass behavior always automatically occurs at the end of all overridden method code. So the SetFocus() was actually setting the focus to that control, but then the BaseClass behavior kicked in and moved the focus to the next tab order control. By using a NODEFAULT you prevent the automatic BaseClass behavior. This gives NODEFAULT two purposes. 1) Completely prevent the BaseClass behavior. 2) Alter when the BaseClass behavior occurs. It's usually not good to completely prevent the BaseClass behavior, so you combine an explicit call alnog with the NODEFAULT:
nodefault
maybe some code goes here
BaseClass::Method()
other code goes here
>OK, so if you permit default to occur, lostfocus will set focus to the next object in the tab order overriding your setfocus() instruction.
>
>OK, now I get it. Thanks.