Hola, buen dia
la razon es sencilla, ( no es tipica de VFP, si has programado en otros, VB6, .NET, etc lo entenderas)
cada objeto desencadena una seria de eventos que, segun el orden de estos, se van ejecutando por orden de prioridad. es decir:
INIT, LOAD, GOTFOCUS, WHEN, VALID, LOSTFOCUS, etc.
cada uno de esos es programable hasta cierto punto.
has leido acerca de el orden en que se ejecutan los eventos de un objeto?
no?, leelo y comprenderas el por que y entenderas tambien como debes programar los eventos de tus objetos.
Saludos