0

私はいくつかのテキストフィールドを動的に作成するこのコードを持っています。kはユーザーbtwから取得されます。

        for (int i = 0; i < k; i++) 
        {
            TextBox t1 = new TextBox();
            t1.Parent = groupBox2;
            t1.Left = textBox2.Left;
            t1.Top = textBox2.Top + (i + 1) * 40;
            t1.Name = "text" + (i + 1);
            t1.Enabled = true;
            groupBox2.Controls.Add(t1);
        }

私がやりたいことは、この作成フェーズが完了した後、ユーザーがgroupbox2の「OK」ボタンを押したときに、作成されたテキストフィールドのテキストプロパティを取得したいのですが、これまでのところ、これを行う方法がわかりません。テキストフィールドに名前を付けました。これを試しましたが、うまくいきませんでした。

    private void button3_Click(object sender, EventArgs e)
    {
        node1.name = textBox2.Text;

        for (int i = 0; i < k; i++) 
        {
            node1.array[i] = Convert.ToInt32("text"+(i+1).Text);
        }
    }

どんな助けでもいいです、ありがとう。

4

4 に答える 4

2

この方法を試してください:

private void button3_Click(object sender, EventArgs e)
{
    node1.name = textBox2.Text;
    for (int i = 0; i < k; i++)
    {
        TextBox txtBox = (TextBox)groupBox2.FindControl("text" + (i + 1));
        if (txtBox != null)
        {
            node1.array[i] = txtBox.Text;
        }
    }
}
于 2013-04-06T12:15:16.790 に答える
1

groupBox1 のテキスト ボックスをループして名前を取得します。これを試してください:

List<string> TextBoxesName=new List<string>();
            foreach (Control item in groupBox1.Controls)
            {
                if (item is TextBox)
                {
                    TextBoxesName.Add((item as TextBox).Text);
                }
            }
于 2013-04-06T12:09:20.263 に答える
0

動的テキストボックスに設定し、テキストボックスを取得するためにIDできることよりもgroupBox2.FindControl("dynamic_texbox_id")

于 2013-04-06T12:07:21.843 に答える
0

最も簡単な解決策は、リストボックスを何らかのコレクションに入れることです

List<ListBox> listboxes = new List<ListBox>();

for (...)
{
...
listboxes.add(listbox);

}

その後、必要なときにいつでもそれらを参照できます

または、それらをグループボックスに追加しているので、そのコレクションを調べてみませんか?

于 2013-04-06T12:07:27.767 に答える