Foreach-Schleife zum Entsorgen von Steuerelementen, Überspringen von Iterationen

Code zum Erstellen von Textfeldern ...

private void btnAddIncrement_Click(object sender, EventArgs e)
{              
    SmartTextBox dynamictextbox = new SmartTextBox();

        dynamictextbox.BackColor = Color.Bisque;
        dynamictextbox.Width = this.tbWidth;
        dynamictextbox.Left = (sender as Button).Right + this.lastLeft;
    dynamictextbox.K = "Test";

    this.lastLeft = this.lastLeft + this.tbWidth;
    dynamictextbox.Top = btnAddStart.Top;
    this.Controls.Add(dynamictextbox);              
}

Code zum Entfernen aller Textfelder.

foreach (Control c in this.Controls)
{

    if (c.GetType() == typeof(BnBCalculator.SmartTextBox))
    {
        count++;
        //MessageBox.Show((c as SmartTextBox).K.ToString());
        c.Dispose();
    }
   // else { MessageBox.Show("not txtbox"); }

}

Wenn ich auf btnAddIncrement klicke, wird wie erwartet Folgendes angezeigt ...

Aber wenn ich auf "Zurücksetzen" klicke, wird jedes zweite Textfeld übersehen. Siehe unten..

Keine Ahnung, was hier los ist, aber das ist das gleiche, egal wie viele Textfelder ich hinzufüge. Es fehlt immer jede zweite Box.

Antworten auf die Frage(10)

Ihre Antwort auf die Frage