Here's the solution as you want ... work perfect :)
private void ClearFormControls(Control c, List<ComboBox> comboxNames)
{
foreach (Control ctrl in c.Controls)
{
if (ctrl is TextBox)
{
ctrl.Text = "";
}
else if (ctrl is ComboBox)
{
int len = comboxNames.Count;
for (int i = 0; i < len; i++)
{
if (ctrl.Name == (comboxNames[i].Name))
{
ctrl.Text = "Choose an item";
comboxNames.RemoveAt(i);
len = len - 1;
break;
}
else
{
if (!comboxNames.Contains(ctrl))
{
(ctrl as ComboBox).Items.Clear();
(ctrl as ComboBox).Text = "";
}
}
}
}
else
{
if (ctrl.Controls.Count > 0)
{
ClearFormControls(ctrl , comboxNames);
}
}
}
}
calling
List<ComboBox> seq = new List<ComboBox>();
seq.Add(comboBox_AccountCategory);
seq.Add(comboBox_CompanyName);
seq.Add(comboBoxAge);
seq.Add(comboBoxSalary);
ClearFormControls(this, seq);