Acessando texto de caixas de texto criadas dinamicamente

Eu tropecei em um problema com o meu formulário asp.net.

Dentro do meu formulário, o usuário final escolhe um número de caixas de texto a serem criadas dinamicamente, tudo isso funciona bem com o seguinte código:

protected void txtAmountSubmit_Click(object sender, EventArgs e)
    {
        int amountOfTasks;
        int.TryParse(txtAmountOfTasks.Text, out amountOfTasks);
        for (int i = 0; i < amountOfTasks; i++)
        {
            TextBox txtAddItem = new TextBox();
            txtAddItem.ID = "txtAddItem" + i;
            txtAddItem.TextMode = TextBoxMode.MultiLine;
            questionNine.Controls.Add(txtAddItem);
            txtList.Add(txtAddItem.ID);
        }
    }

No entanto, isso também causou um pequeno problema para mim, mais tarde, no meu formulário, no botão Enviar, envio os resultados para a pessoa especificada para a qual ele precisa ir (usando o e-mail smtp). Novamente esta parte está bematé que eu esteja tentando recuperar o texto dessas caixas de texto criadas dinamicamente.

O que eu tentei

Eu tentei usareste servidor de acesso msdn controla o método ID no entanto, isso não estava funcionando.

Eu tentei adicionar essas novas caixas de texto a uma lista, no entanto, eu não tinha certeza sobre como atualizar essas caixas de texto quando eles têm texto neles. Portanto, meus resultados estavam retornando null por causa disso.

Eu também observei outras questões sobre SO, comoisto no entanto, eles são geralmente para WPF ou winforms, em vez de meu problema com asp.net (isso geralmente não é um problema, mas eu não preciso obter o texto de cada controle de caixa de texto na minha página, apenas os que foram dinamicamente criado).

Eu também tentei mudar como eu chamo o código que eu esperava que tivesse funcionado:

string textboxesText = string.Join("\n", txtList.Select(x => x).ToArray());

e então na minha string concatenada (corpo do email) eu chamaria:

textboxesText

O problema

Como eles são dinamicamente criados, eu estou achando difícil chamá-los pelo seu id, por exemplo: txtExampleID.Text, também como eu tenho que incrementar os ID's por um a cada vez (para que eles não se sobreponham mutuamente) tornou as coisas um um pouco mais difícil para mim.

Eu não estou pedindo uma solução de código, eu preferiria ponteiros na direção certa, pois ainda estou aprendendo.

Então, para resumir tudo: Preciso pegar o texto das minhas caixas de texto criadas dinamicamente para adicioná-lo ao meu corpo de e-mail.

questionAnswers(1)

yourAnswerToTheQuestion