dentro il form, dove vuoi metti un contenitore, per esempio un
<asp:PlaceHolder id="PlaceHolder1" runat="server"></asp:PlaceHolder>
il codice sottostante è:
codice:
Option Strict On
Partial Class CorsoApogeo_AggiuntaDinamicaControlli
Inherits System.Web.UI.Page
Private Function GetForm() As HtmlForm
Return CType(Me.FindControl("Form1"), HtmlForm)
End Function
Private Function GetLabel() As Label
Return CType(Me.FindControl("lbl1"), Label)
End Function
Private Function GetTextBox() As TextBox
Return CType(Me.FindControl("tb1"), TextBox)
End Function
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
PrintLn("Page_Load")
Dim tb As New TextBox()
tb.ID = "tb1"
tb.Text = "Scrivi qualcosa"
Me.PlaceHolder1.Controls.Add(tb)
Me.PlaceHolder1.Controls.Add(New LiteralControl("
"))
Dim btn As New Button()
btn.Text = "Spedisci"
Me.PlaceHolder1.Controls.Add(btn)
AddHandler btn.Click, AddressOf btn1_click
Me.PlaceHolder1.Controls.Add(New LiteralControl("
"))
Dim lbl As New Label()
lbl.ID = "lbl1"
Me.PlaceHolder1.Controls.Add(lbl)
End Sub
Private Sub btn1_click(ByVal Sender As Object, ByVal e As System.EventArgs)
PrintLn("btn1_click")
GetLabel().Text = "Mi hai chiamato, finalmente!
Mi hai spedito: " & Me.GetTextBox().Text
End Sub
End Class
messo nell'evento load

ps: è un esempio molto datato, ma funziona. PrintLn è una procedura che fa Response.Write(xxxx & "
")
l'istruzione che ti interessa è:
AddHandler btn.Click, AddressOf btn1_click