There are 2 things you could do then. One is to instead of directly editing the fields you instead change the datasource of the bindingsource to the selected object. If the selected object is unavailable you have to utilize control.focus after each field change when you are editing bound fields in background code.
Please let me know if that is not clear.