-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

また、コードは完全ではないようです。1つの質問で可能な限り、次のように言います。

TextBoxコントロールに登場するためには、そのコレクションのForm/Controlメンバーになる必要があります。Controls言い換えれば、「削除」するには (インターフェイスからの削除について話していると思います)、次のようにするだけです。

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

お役に立てれば。

于 2012-04-08T14:05:34.617 に答える