Merçi, Sylvain.
Unfortunately, it didn`t work. I tried both VALID() and SETFOCUS(). Finally, I did the following:
IF TYPE("ThisForm.ActiveControl") = 'O' .AND. !ISNULL(ThisForm.ActiveControl)
IF VARTYPE(ThisForm.ActiveControl.Value) <> 'U'
ThisForm.ActiveControl.Value = ThisForm.ActiveControl.Value
ENDIF
ENDIF
À bientôt
>>I have a very basic form where the keypress event traps ctrl+up or down arrow to skip records. On this form are fields for editing data. When I type information in the field and do a ctrl+arrow without first exiting the field, the data is not written to the field. What is it I have to do in order to force the data to be written (a form.refresh does nothing)?
>>
>>Thanks in advance
>
>Have the control you're currently in lose focus. My prefered method is
_VFP.ActiveForm.ActiveControl.SetFocus()
. As you can see, it doesn't matter that the control regains focus afterward - as long as it loses it!
>
>It won't work if the active control is a grid, though! In this case, either you SetFocus() to another object or to another column.
>
>HTH! (JQCA - J'espere que ca aide! ?!?!? Nah, on va rester avec HTH!) :)