The value set to the last spin editor is overridden with its previous value.
How to reproduce: check the attached videos
Workaround:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.radColorBox1.ValueChanging += radColorBox1_ValueChanging;
((RadForm)this.radColorBox1.ColorBoxElement.ColorDialog.ColorDialogForm).FormClosing += Form1_FormClosing;
}
bool cancelValueChange;
Telerik.WinControls.UI.RadColorPicker.ProfessionalColors professionalColors;
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
Control colorSelector = this.radColorBox1.ColorBoxElement.ColorDialog.ColorDialogForm.RadColorSelector;
RadPageView pageView = colorSelector.Controls[3] as RadPageView;
if (pageView.SelectedPage.TabIndex == 3)
{
cancelValueChange = true;
professionalColors = pageView.Pages[3].Controls[0] as Telerik.WinControls.UI.RadColorPicker.ProfessionalColors;
}
else
{
professionalColors = null;
}
}
private void radColorBox1_ValueChanging(object sender, Telerik.WinControls.UI.ValueChangingEventArgs e)
{
if (cancelValueChange && professionalColors != null)
{
e.Cancel = true;
RadSpinEditor alphaSpinEditor = professionalColors.Controls[12] as RadSpinEditor;
RadSpinEditor redSpinEditor = professionalColors.Controls[15] as RadSpinEditor;
RadSpinEditor greenSpinEditor = professionalColors.Controls[11] as RadSpinEditor;
RadSpinEditor blueSpinEditor = professionalColors.Controls[7] as RadSpinEditor;
cancelValueChange = false;
this.radColorBox1.Value = Color.FromArgb((int)alphaSpinEditor.Value, (int)redSpinEditor.Value, (int)greenSpinEditor.Value, (int)blueSpinEditor.Value);
}
}
}