Hello Scott,
Please take a look at the following example:
using System.Windows.Forms;
using Telerik.WinControls.UI;
public partial class Form1 : Form
{
private FlowLayoutPanel flowPanel;
private bool localChange;
public Form1()
{
InitializeComponent();
flowPanel = new FlowLayoutPanel();
flowPanel.Dock = DockStyle.Fill;
this.Controls.Add(flowPanel);
for (int i = 0; i < 10; i++)
{
var checkBox = new RadCheckBox();
checkBox.ToggleStateChanged += new StateChangedEventHandler(radCheckBox_ToggleStateChanged);
checkBox.Text = "CheckBox" + i;
flowPanel.Controls.Add(checkBox);
}
}
void radCheckBox_ToggleStateChanged(object sender, StateChangedEventArgs args)
{
if (localChange)
{
return;
}
ToggleState(sender as RadCheckBox);
}
private void ToggleState(RadCheckBox radCheckBox)
{
localChange = true;
foreach (var control in flowPanel.Controls)
{
var checkBox = control as RadCheckBox;
if (checkBox != null && checkBox != radCheckBox && checkBox.ToggleState != Telerik.WinControls.Enumerations.ToggleState.Off)
{
checkBox.ToggleState = Telerik.WinControls.Enumerations.ToggleState.Off;
}
}
localChange = false;
}
}
Hope this helps, if you have any other questions or comments, please let me know,
Best Regards,
Emanuel Varga
Telerik WinForms MVP