trackbar_scrollにテキストボックスを動的に作成したいと思います。 トラックバーの値が5の場合、5つのテキストボックスがあります。 2になると、2つのテキストボックスが必要です。ここで私はtrackbar_scroll値を下げる問題がある:TextBoxの削除、場所の問題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;
}
}
ありがとう、それは動作します。どうぞよろしくお願いしますか。 foreach(this.Controlsのcontrol ctrl) とあなたのコードの違いは何ですか? –
@ A.RShaib実際の違いは、リストのコピーを作成する 'ToList()'です。元のコードでは、コレクションからコントロールを削除するとコレクションが変更されるため、次のコントロールは1つオフになります。 – LarsTech