C#如何使用动态创建的项重新加载表单

时间:2017-06-28 14:47:30

标签: c# winforms visual-studio

Image of program

我的主窗体为列表中的每个条目动态创建列表框。通过单击右上角的按钮,我会得到一个小表单来创建一个新条目。如果我关闭表单应该创建一个新的文本框,但是我不能只调用创建列表框的方法,因为它会绘制重复项。有没有办法刷新整个表单而不关闭它并创建一个新表单?

文本框代码

foreach (Uitslag u in geselecteerdeVerkiezing.uitslagen)
{
    CreateDynamicTextBox(x, y, u);
    UpdatePositionManager(ref x, ref y, ref PositionManager);
}

private void CreateDynamicTextBox(int x, int y, Uitslag u)
{
    TextBox textBox = new TextBox();
    textBox.Location = new Point(x, y);
    textBox.Size = new Size(220, 100);
    textBox.Multiline = true;
    textBox.ReadOnly = true;
    textBox.Text = ("Verkiezing: " + geselecteerdeVerkiezing.Naam + Environment.NewLine + "Uitslag: " + u.Naam + Environment.NewLine + "Aantal zetels: " + +geselecteerdeVerkiezing.AantalZetels + Environment.NewLine + "Zetels voor meerderheid: " + geselecteerdeVerkiezing.Meerderheid + Environment.NewLine + "Aantal deelnemende partijen: " + u.DeelnemendePartijen.Count);
    textBox.Name = u.Naam;

    textBox.MouseClick += new MouseEventHandler(textBox_Click);
    this.Controls.Add(textBox);
}

1 个答案:

答案 0 :(得分:0)

如果你想删除所有文本框,我认为你可以这样做(没时间测试):

var textBoxes = this.Controls.Cast<Control>().Where(r => r is TextBox).ToArray();
foreach (var textBox in textBoxes)
{
    textBox.Dispose();
}

您还可以在.Where()ForEach本身的名称中查看它们。