-2
TextBox[] txt = new TextBox[4];
for (int i = 0; i < 5; i++)
{
    txt[i] = new TextBox();
    txt[i].Text = "button" + i;
}

这些是创建动态文本框的代码。我不知道如何删除这些按钮。后来我发现了如何使用这个文本框,这可能会对你的项目有所帮助,这是完全删除文本框的功能。

private void CleanForm(Control ctrl)
    {
        foreach (Control c in ctrl.Controls)
        {
            if (c is TextBox)
            {
                ((TextBox)c).Dispose();
                CleanForm(this);
            }

        }
    }
4

2 回答 2

3

由于您在创建文本框时保留了对它们的引用,因此txt您可以简单地枚举它以将其删除。

foreach(TextBox t in txt){
    this.Controls.Remove(t);
    t.Dispose();
}

txt = new Textbox[] {}; // this removes all references to those textboxes. null would work too.
于 2012-04-08T14:01:26.993 回答
0

此外,代码似乎并不完整,我想说的是,它可能是一个问题:

TextBox控件为了出现在Form/Control必须成为Controls收藏它的成员。换句话说,要“删除”(我想你说的是从界面中删除),你可以简单地做这样的事情:

ctrl.Controls.Remove(textBoxControl);
textBoxControl.Dispose();

希望这可以帮助。

于 2012-04-08T14:05:34.617 回答