Maybe you could try for yourself first, because there's no point my doing the whole thing for you if you can do most of it for yourself. I mentioned the Validating event and the ValidateChildren method. Have you done any research to find out what you can about them? Have you read the relevant documentation? Have you tested using them in a simple test application first? These are the sorts of things you should be doing for yourself first, then asking for help if you get stuck. Asking someone else to do it for you without making any sort of attempt is not the best way to learn.