Am serious about knowing what is the purpose of having System.Windows.Forms.Timer Enabled and Start(), and finally arrived with a conclusion that Enabled is set to true internally in method Start(). The entire business logic to disable the timer is written in the Enabled Setter.

What happens when it is set to enabled= false.

The Timer object will have a timerWindow object within (native c++ timer object). Whenever you say enabled = false then the timerWindow is set to null. Wait, if we set to null then how come it can be regained when enabled is set to true, will it not be garbage collected?. That's why the Timer object has a GCHandle to the timerWindow which preserves it from being GC collected. Am eager to get your comments on this.