Ich möchte Textfelder dynamisch unter trackbar_scroll erstellen. Wenn Trackbar einen Wert von 5 hat, kann es 5 Textfelder haben. Wenn es auf 2 reduziert wird, muss es 2 Textfelder haben. Hier ist das Problem, wenn ich trackbar_scroll Wert zu verringern:Entfernen von TextBox, Standortproblem C#
private void trackBar1_Scroll(object sender, EventArgs e)
{
foreach (Control ctrl in this.Controls) // to remove all textboxes before creating new
{
if (ctrl is TextBox)
{
this.Controls.Remove(ctrl);
ctrl.Dispose();
}
}
int x = 45; // location for textbox
for (int i = 0; i < trackBar1.Value; i++)
{
listBox1.Items.Add(i);
TextBox _text = new TextBox();
_text.Name = "txt"+i;
_text.Height = 20;
_text.Width = 100;
_text.Text = _text.Name;
_text.Location = new Point(x, 85);
this.Controls.Add(_text);
x = x + 120;
}
}
danke, es funktioniert. Möchten Sie bitte erläutern. Was ist der Unterschied zwischen foreach (Steuerelement Strg in diesem. Controls) und Ihrem Code. –
@ A.RShaib Der wirkliche Unterschied ist die 'ToList()', die eine Kopie der Liste erstellt. In Ihrem ursprünglichen Code wird durch das Entfernen eines Steuerelements aus der Auflistung die Auflistung geändert, sodass das nächste Steuerelement um eins deaktiviert ist usw. – LarsTech