To change the behavior of a component depending on whether it's executing at design time or run time, you need to know that you're running in a designer. This information is provided by Component's DesignMode property, which returns true at design time or returns false at run time and during the execution of a component's constructor at design time. Using DesignMode makes it relatively simple to prevent AlarmClockControl from constantly repainting at design time: void timer_Tick(object sender, EventArgs e) { ... // Don't do anything if executing at design time if( this.DesignMode ) return; ... // Refresh clock face this.Invalidate(); } Note that Component.DesignMode reports that a component is operating in the design time only if the component has been sited. Because the design time sets the ISite reference after it instantiates a component, you can't inspect Component.DesignMode from a component's constructor. |