0
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Mod
{
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    int c = 0;

    private void button1_Click(object sender, EventArgs e)
        {
        TextBox txtRun = new TextBox();
            txtRun.Name = "txtDynamic" + c++;
            txtRun.Location = new System.Drawing.Point(20, 18 + (20 * c));
            txtRun.Size = new System.Drawing.Size(200,15);
            this.Controls.Add(txtRun);
        }
        private void button2_Click(object sender, EventArgs e)
        {
            List<string>tilelocation = List<string>();
            tilelocation.Add();  //What goes in this method's arguments?
        }
    }
}

これが私のコードです。Button1 は、理論的に無限の数のテキスト ボックスを作成しますが、これらの動的に生成されたテキスト ボックスのテキストをリストに追加したいと考えています。これはどのように行うことができますか?
[編集]そして、それらをすべてメッセージボックスに、それぞれ別の行に表示するにはどうすればよいですか?

4

3 に答える 3

0

しかし、これらの動的に生成されたテキストボックスのテキストをリストに追加したいと考えています。これはどのように行うことができますか?

new List<string>次のように使用する必要があります。

private void button2_Click(object sender, EventArgs e)
{
    List<string> tilelocation = new List<string>();
    foreach(TextBox tb in this.Controls.OfType<TextBox>().Where(r=> r.Name.StartsWith("txtDynamic"))
          titlelocation.Add(tb.Text);

 //if you want a string out of it. 

 string str = string.Join(",", titlelocation);
 MessageBox.Show(str);
}

編集:新しい行の各テキストについて:

string str = string.Join(Environment.NewLine, titlelocation);
MessageBox.Show(str);
于 2013-05-05T02:57:26.300 に答える