如何删除在c#中创建的动态文本框

时间:2012-04-08 13:43:30

标签: c# winforms dynamic textbox

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);
            }

        }
    }

2 个答案:

答案 0 :(得分: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.

答案 1 :(得分:0)

似乎似乎代码不完整,就像在一个问题中一样,我会说:

TextBox控件才能显示在Form/Control上,必须成为Controls收集它的成员。换句话说,要“删除”(我想你正在谈论从界面中删除),你可以做一下这样的事情:

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

希望这有帮助。