Just create a new textbox inside a loop:
Imports System.Text
Imports System.Text.RegularExpressions
Public Class Form1
Dim myTxtBoxes As List(Of TextBox) = New List(Of TextBox)
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim sText As String = Me.TextBox1.Text
Dim sPattern As String = Me.TextBox2.Text
Dim initialPoint As Point = New Point(Me.TextBox2.Location.X, Me.TextBox2.Location.Y)
Dim matches As MatchCollection = Regex.Matches(sText, sPattern)
For j As Integer = myTxtBoxes.Count - 1 To 0 Step -1
Dim tb As TextBox = myTxtBoxes(j)
Me.Controls.Remove(tb)
myTxtBoxes.Remove(tb)
Next
Dim i As Integer = 1
For Each m As Match In matches
Dim tb As TextBox = New TextBox
With tb
.Name = "ResultTB" & i.ToString()
.Location = New Point(initialPoint.X, initialPoint.Y + (i * 24) + 8)
.Size = Me.TextBox2.Size
.Text = m.Value
.BackColor = Color.Aquamarine
.Parent = Me
End With
myTxtBoxes.Add(tb)
i += 1
Next
End Sub
End Class
[EDIT]
Download working example:
DynamicControls_vb.7z[
^] (available to download between 7AM and 10:59PM CET +1)