I create a form with one button on it which shows another form with 3 textboxes. I send an instance of class Person to form2, which is supposed to fill the textboxes with the properties of Aperson. If I do not initialize the properties, the code in the loadboxes() routine of form2 does not get executed. I think this has something to do with the textbox.Enter routine, but I'm not sure why. If I remove the comment character in front of the lines initializine Aperson, then textbox3 contains "XXX" otherwise it is blank. I do not understand this behavior.

Code:
Public Class Person
    Public Property Name() As String
    Public Property Age() As Integer
End Class

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim Aform2 As New Form2
        Dim Aperson As Person = New Person
        'Aperson.Name = "Anonymous"
        'Aperson.Age = 29
        Aform2.Aperson = Aperson
        Dim result = Aform2.ShowDialog

    End Sub
End Class

Public Class Form2
    Public Aperson As Person
    Private SaveData As String
    Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        LoadBoxes()
            End Sub
    Private Sub LoadBoxes()
        TextBox1.Text = Aperson.Name.ToString
        TextBox2.Text = Aperson.Age.ToString
        TextBox3.Text = "XXX"
    End Sub

    Private Sub TextBox1_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox3.Enter, TextBox2.Enter, TextBox1.Enter
        Dim Abox As TextBox = CType(sender, TextBox)
        SaveData = Abox.Text
    End Sub
End Class