Hola, Fabián.
>Tengo un form normal con las opciones de nuevo, editar, guardar, grabar, las cuales se pueden ejecutar a través de un toolbar o un menú.
>
>Hace algun tiempo tuve que utilizar una variante del método WriteBuffer() del ejemplo tastrade que venía incluído en VFP 7.0 o anterior, porque en algunos casos no me guardaba la información que grababa en los TextBox.
>
>Pero en este momento me funciona solo cuando lo ejecuto con la ToolBar (tuve que utilizar sobre esta el método when para que ejecutara el método WriteBuffer() antes de que el control TextBox sobre el que había registrado la información se actualizara antes de perder el foco), pero no me funciona sobre el menú ya que no he encontrado la forma de ejecutar el WriteBuffer() antes de que el control TextBox pierda el foco.
>
>Creo que está un poco enredado, pero agradezco su ayuda.
Como yo lo veo, lo mejor sería no hacer esto en la barra de herramientas ni en el menú, sino en el método Save() o Grabar() de tu clase formulario. Tanto toolbars como menués sólo deberían disparar acciones, y no tener lógica asociada al evento mismo. Esto evita, por ejemplo, tener casos de duplicación de código como este.
En general, para evitar este problema del buffer, suele bastar algo simple como thisform.ActiveControl.SetFocus()
Saludos,