6

こんにちは、Windows Application Form でテキスト ボックスを作成するときに、box[0]、box[1] などの名前を付けることができません。このようにしたいのは、それらをループで使用したいからです。

4

7 に答える 7

9

それらを作成したら、それらのリストを作成してみませんか? フォームの初期化関数では、次のようなことができます。

List<TextBox> myTextboxList = new List<TextBox>();
myTextBoxList.Add(TextBox1);
myTextBoxList.Add(TextBox2);
mytextBoxList.Add(TextBox3);

これで、「myTextboxList」を次のように繰り返すことができます。

Foreach (TextBox singleItem in myTextboxList) {
    // Do something to your textboxes here, for example:
    singleItem.Text = "Type in Entry Here";
}
于 2012-05-27T01:47:52.180 に答える
8

実は私TextBox[] array = { firstTextBox, secondTextBox };も作品を発見!

于 2012-05-27T02:45:51.007 に答える
1

実行時にテキストボックスを作成し、それらを配列に入れることができます...

設計時にそれを行う場合は、必要なthis.Controlsテキスト ボックスのみにアクセスするために、配列全体に対していくつかの制御フィルタリング ロジックを実行する必要があります。if (currControl is TextBox)フォーム内のすべてのテキスト ボックスが、配列に必要なものであるかどうかを検討してください。

設計時のもう 1 つのオプションは、必要なすべてのテキスト ボックスを親となるパネルに配置し、パネルの子 (コントロール) を反復処理して TextBox にキャストすることです。

ランタイム ソリューションは次のようになります。

var arr = new TextBox[10];

for (var i = 0; i < 10; i++)
{
    var tbox = new TextBox();

    // tbox.Text = i.ToString();

    // Other properties sets for tbox

    this.Controls.Add(tbox);
    arr[i] = tbox;
}
于 2012-05-27T01:48:24.150 に答える
0

個人的には、これには配列を使用しません。List のような一般的なコレクションの形式を使用します。

    List<TextBox> textBoxList = new List<TextBox>();

    //Example insert method
    public void InsertTextBox(TextBox tb)
    {
        textBoxList.Add(tb);
    }

    //Example contains method
    public bool CheckIfTextBoxExists(TextBox tb)
    {
        if (textBoxList.Contains(tb))
            return true;
        else
            return false;
    }

必ずしも Contains メソッドを使用する必要はありません。Any() を使用することもできますし、別の方法を見つけることもできます。すべては、何をしているかによって異なります。この場合、ジェネリック コレクションを使用すると、単純な配列よりも柔軟性が高くなると思います。

于 2012-05-27T01:53:14.490 に答える
0

C#これを使用してテキストボックスの配列を作成するだけです

public Text [] "YourName" = new Text ["how long you want the array"];

次に、テキスト ボックスを配列に個別に追加します。

于 2016-06-22T09:34:15.330 に答える
-1
TextBox[] t = new TextBox[10];
for(int i=0;i<required;i++)
{ 
   t[i]=new TextBox();
   this.Controls.Add(t[]);
}
于 2012-05-27T01:52:44.840 に答える