Why can't you do as this: Public MyControl() { InitializeComponents(); this.refresh(); } As it will be refreshed after the call of the init() is returned and all the initialization is complete. Assuming that your visual properties will be user in the Overrode OnPaint Method .