/// <summary>
 /// Sets the color of the given editor.
 /// </summary>
 /// <param name="control">The <see cref="IColourEditor"/> to update.</param>
 /// <param name="sender">The <see cref="IColourEditor"/> triggering the update.</param>
 protected virtual void SetColour(IColourEditor control, IColourEditor sender)
 {
     if (control != null && control != sender)
     {
         control.Colour = sender.Colour;
     }
 }
 /// <summary>
 /// Synchronizes linked components with the specified <see cref="IColourEditor"/>.
 /// </summary>
 /// <param name="sender">The <see cref="IColourEditor"/> triggering the update.</param>
 protected virtual void Synchronise(IColourEditor sender)
 {
     if (!this.LockUpdates)
     {
         try
         {
             this.LockUpdates = true;
             this.SetColour(this.ColourGrid, sender);
             this.SetColour(this.ColourWheel, sender);
             this.SetColour(this.ScreenColourPicker, sender);
             this.SetColour(this.ColourEditor, sender);
             this.SetColour(this.LightnessColourSlider, sender);
         }
         finally
         {
             this.LockUpdates = false;
         }
     }
 }
 /// <summary>
 /// Binds events for the specified editor.
 /// </summary>
 /// <param name="control">The <see cref="IColourEditor"/> to bind to.</param>
 protected virtual void BindEvents(IColourEditor control)
 {
     control.ColourChanged += this.ColourChangedHandler;
 }