Well there's no way around that. Your program can't magically know whether the user intends for the rectangle to be 2 inches, or whether the user is going to enter in another digit afterwards. The only way you could get around this is to set a timer in your OnChange() function. When the timer expires, then change the height and width of the rectangle. If OnChange() is called before the timer expires, then you just reset the timer.
if I put in "20" inches for one side, the area will calculate with "2" inches for one side when I type the first character, and then calculate again when I type the "0".