Re: ReadProperties purpose
The ReadProperties event occurs every time a usercontrol in your project has just been created and is first sited on the host container. The InitiProperties event occurs only once and it occurs the very first time the control is dragged onto the container from your toolbox; after that, ReadProperties is called. ReadProperties only occurs once, not for every property. You are expected to retrieve all stored properties and cache them in your code.
ReadProperties allows you to retrieve previously stored properties that were written in the WriteProperties event. WriteProperties occurs only in design view and what you are writing is basically the properties you exposed as Public that also appear on the property sheet. You can also write custom/internal/personal values if needed. This event only occurs when the control is about to be destroyed (i.e., form closing)
But I can go on and on regarding the properties and events of usercontrols. Let me give you an excellent link that will help. Specifically, look at Chapter 17.