Yes, most of them forget or don't remember the values for Before Properties and After Properties on SPItem Event Receiver like me.Already so many posts available for this, but i would like to consolidate some of the posts which i read. Argument Out Of Range Exception: Specified argument was out of the range of valid values. SPList Item Collection.get_Item(Int32 i Index) at Microsoft. My requirement is, if user selects Choice1 in the My Choice field, then the My Value field cannot remain blank.
Some basic details about Event Receivers got from this post Event receivers are a great way to hook into various Share Point events.
An advantage of using Item Updating to set field values is that the values will be visible to the user after they submit their changes in a non-datasheet view.
Because Item Updated is asynchronous, the user may not see their new values when they see the list after submitting the edit.
Changed value means that the correct updated value was available.
Original value means that the correct original value was available.