When your code iterates over the collection of Controls on the Form, the fact you specify a specific Control Type in your loops means that when the iterator comes to a Control of another Type you will get an "invalid cast" error.
Here's another, simpler way:
foreach (TextBox tb in this.Controls.OfType<textbox>())
{
tb.Text = string.Empty;
}
foreach (ComboBox cbx in this.Controls.OfType<combobox>())
{
cbx.Text = string.Empty;
cbx.SelectedIndex = -1;
}