Public Class Form1
'Bovenaan een aantal vaste waarden instellen zodat die later makkelijk te wijzigen zijn
Private iSpacing As Integer = 10
Private iStartX As Integer = 12
Private iStartY As Integer = 60
Private iHeight As Integer = 20
Private Sub btnGen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGen.Click
Dim iAantal As Integer = Convert.ToInt32(nudAantal.Value)
Dim txtPrevious As TextBox = Nothing
For i As Integer = 1 To iAantal
'Nieuwe textbox aanmaken en naam bepalen adhv het opgegeven nummer
Dim txt As New TextBox()
txt.Name = "txt" & i
'Hier wordt de left gewoon gelijk gezet aan de opgegeven waarde
'Je kan hiervoor natuurlijk ook een verschuiving opgeven, wat ik in dit voorbeeld
'niet gedaan heb
txt.Left = iStartX
'De top berekenen adhv de vorige textbox, wanneer die er is
'Anders gelijkstellen aan de opgegeven waarde
If Not txtPrevious Is Nothing Then
txt.Top = txtPrevious.Top + iHeight + iSpacing
txt.Height = iHeight
Else
txt.Top = iStartY
End If
'Textbox toevoegen aan formulier en visible zetten
Me.Controls.Add(txt)
txt.Visible = True
'Laatst toegevoegd textbox opslaan in txtPrevious om positie voor volgende te bepalen
txtPrevious = txt
Next
End Sub
Private Sub btnValues_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnValues.Click
Dim txt As TextBox = New TextBox
'Controleren of het type control wel van het type textbox is
For Each oControl As Control In Me.Controls
If oControl.GetType.ToString = txt.GetType.ToString Then
'Methode 1
'Een nieuwe textbox aanmaken en die gelijkstellen aan control
Dim txtTemp As TextBox = oControl
Console.WriteLine(txtTemp.Text)
'Methode 2
'Definieëren welk type het is adhv Ctype
Console.WriteLine(CType(oControl, TextBox).Text)
End If
Next
End Sub
End Class