I'm afraid that problem arise due the need to trim all the spaces on DBF fields. As you surely remember all the character DBF fields values are filled with spaces up to the length of its field. That was a problem when editing those fields. If we take off that trim operation I'm sure many people will protest.
I suggest you overload the TEdit:SetValue method this way:
METHOD SetValue( Value, lWithEvent ) CLASS TEdit
DEFAULT lWithEvent TO .F.
::FValue := ToString( Value, "" )
::FcText := ::FValue
IF ! Empty( ::Handle ) .AND. !( GetWindowText( ::Handle ) == ::FcText )
IF ! lWithEvent
::lStopEvent := .T.
SetWindowText( ::Handle, ::FcText )