Maybe solution is to add some kind of flag to the form? Make private field like:
private bool isUpdating = false;
In your code responsible for updating comboboxes do some kind of trick:
private void UpdateDataSources()
{
isUpdating = true;
foreach (var comboBox in panel2.Controls.OfType<ComboBox>())
{
comboBox.DataSource = ds.Tables[1];
comboBox.DisplayMember = "FeeName";
comboBox.ValueMember = "ID";
}
isUpdating = false;
}
And then in SelectedIndexChanged of every combobox (or if shared event handler) insert IF statement:
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (!isUpdating)
{
}
}
Consider setting SelectedIndexItem to -1 after updating ComboBoxes datasources.
I didn't tried this but i think that can help you. Let me know :)