Nov 10, 2013 at 7:56 PM
I found an Error in this program and i think that's a Logical Error.(However i didn't review source of the program).
Now i want to explane what's the problem:
if you run the program and check the checkbox then every thing is ok at the first time.
but when you uncheck and check it again, you will see every event is being called two times instead of one time!
now uncheck and check it again (for the third time) then you will see every event is being called three times instead of one time!
(you can check and uncheck it for several times and see several repetition increment!)

the easiest way is to check (and may record) time of event calling and then null the event repetition.
BUT the easiest way is the worst way because it isn't the engineered solution and overflow will happen in program structure at long time usages of it (when we face with huge increment of repetition).