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

これらはダイナミックテキストボックスを作成するためのコードです。私はこれらのボタンを削除する方法を知らない。後で私はこのテキストボックスにあなたのプロジェクトであなたを助けるかもしれない方法を見つけた これは、テキストボックスを完全に削除するfunctinです。Cで作成された動的テキストボックスを削除する方法#

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

     } 
    } 
+0

ループ内の 'CleanForm(this)'の目的は何ですか?また、ガベージコレクタは、それを参照する任意のコンテナからテキストボックスを削除すると、最終的にテキストボックスを "削除"します。 –

答えて

2

あなたは彼らにtxtを作成しているときに、テキストボックスへの参照を保持しているので、あなたは、単に削除することの上に列挙できます。 Form/Controlているに登場させるために

TextBoxコントロール:また

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. 
0

それコードが、それは一つの質問、私が言う、その中で可能性と同じくらい、完全ではないことをようですそれのControlsコレクションのメンバーになります。このことができます

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

希望を:つまり、あなたは、単にこのような何かを行うことができます(私はあなたがインターフェイスから削除についての話をしていると仮定)、「削除」します。

関連する問題