Crear TextBox en tiempo ejecución

gabecq
08 de Junio del 2005
Necesito crear un TextBox en tiempo de ejecución, x ejemplo, al clickar en un botón.

En el file *.aspx.vb tengo esto:


Dim textBox1 As New System.Web.UI.WebControls.TextBox

textBox1.Text = "TTTTTTTTTTTTT"
textBox1.Visible = True

' Añado el TextBox al form.
Controls.Add(textBox1)

y al ejcutar y clickar en el botón m da el siguiente error:

The Controls collection cannot be modified because the control contains code blocks (i.e. <% ... %>).

Exception Details: System.Web.HttpException: The Controls collection cannot be modified because the control contains code blocks (i.e. <% ... %>).

Source Error:
Line 181: Controls.Add(textBox1)

M podeis ayudar?

Muchas gracias.

mvallejos
08 de Junio del 2005
Coloca en el formulario, un textBox inicial con Index = 0, a modo de elemento inicial de un array.
Luego, si quieres crear uno haces lo siguiente

Supoingamos que el control se llama Text1 con Index = 0

Sub CrearTextBox
Dim ProxId as Integer
ProxId = Text1.Ubound + 1
Load Text1(ProxId)
Text1(ProxId).Left = <posicion deseada>
Text1(ProxId).Top = <posicion deseada>
Text1(ProxId).Visible = True
End Sub

Saludos




gabecq
08 de Junio del 2005
Gracias mvallejos!

Al final lo solucioné colocando el textbox en un panel y haciendo este visisble o no visible.

Taleugo.