I guess this could be related to converting empty values to numbers. Generally, when converting empty string to numbers (using double.Parse or Convert.ToDouble methods), it will throw error. Your situation may be related to this...internally some error happens and moving out is cancelled..
I dont know how you do the data binding...See if you can use Binding.Parse event to take control of the conversion. sample here =>
http://msdn.microsoft.com/en-us/library/system.windows.forms.binding.parse.aspx(Binding class is used in textBox1.DataBindings.Add method)
See if you can use Binding.DataSourceNullValu
e and Binding.NullValue properties in your code, to handle the null cases..(
http://msdn.microsoft.com/en-us/library/system.windows.forms.binding_members.aspx)