/// <summary>
 /// Occurs when the selected color is changed, the event args describe the color change using Color.Empty for either the foreground
 /// or bacground when that color has not changed.
 /// </summary>
 /// <param name="e"></param>
 protected virtual void OnSelectedColorChanged(ColorChangeEventArgs e)
 {
     if (SelectedColorChangedEventHandler != null)
     {
         SelectedColorChangedEventHandler(this, e);
     }
 }
        private void cboColorList_SelectedIndexChanged(object sender, EventArgs e)
        {
            ColorRepresentation cr = (ColorRepresentation)cboColorList.SelectedItem;

            this.m_currentlySelectedColor = cr;

            ColorChangeEventArgs ccArgs = new ColorChangeEventArgs(cr.ForeGround, cr.Background);

            if (!cr.UsesBackground)
            {
                ccArgs.Background = Color.Empty;
            }
            OnSelectedColorChanged(new ColorChangeEventArgs(cr.ForeGround, cr.Background));
        }