First of all excuse me for my poor grammar and vocabulary :)

please see this source and run it:

```
Public Class Form1
Public pointX As Integer
Public pointY As Integer = 32
Public dynamicText As TextBox
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    pointX = 330
    For i = 1 To 4
        dynamicText = New Windows.Forms.TextBox
        dynamicText.Name = "T" + Trim(Str(i))
        dynamicText.Text = ""
        dynamicText.Location = New Point(pointX, pointY)
        dynamicText.Size = New Size(100, 20)
        Me.Controls.Add(dynamicText)
        pointX = pointX - 106
    Next
End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    pointX = 330
    pointY = pointY + 26
    For i = 1 To 4
        dynamicText = New Windows.Forms.TextBox
        dynamicText.Name = "T" + Trim(Str(i))
        dynamicText.Text = ""
        dynamicText.Location = New Point(pointX, pointY)
        dynamicText.Size = New Size(100, 20)
        Me.Controls.Add(dynamicText)
        pointX = pointX - 106

        AddHandler dynamicText.Click, AddressOf printHello1
    Next
End Sub

Private Sub printHello1(ByVal sender As System.Object, ByVal e As System.EventArgs)
    MsgBox(dynamicText.Name)
    If dynamicText.Name = "T1" Then MsgBox("Oh! this is T1")
End Sub
End Class

```

**why If never is not true?!
why MsgBox(dynamicText.Name) always return T4?!
i want all controlls to be access by name or array of names.**
please help me thank you. :)