Se você colocar seu código no lostfocus do objeto contido no grid (um text por exemplo), ele sempre vai ser executado antes de pressionar qualquer botão da aplicação. No valid do grid isso não acontece, por isso acho que mudar o local do seu código seria melhor não? Ou apenas fazer uma referencia a ele no Lostfocus dos objetos contidos no grid.
Cordialmente,
Fabiano Costa