Um.
Look at your code:
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
button1 = New Button
button2 = New Button
button3 = New Button
AddHandler button1.Click, AddressOf Button4_Click
AddHandler button2.Click, AddressOf Button4_Click
AddHandler button3.Click, AddressOf Button4_Click
Every time you click Button 4, you create three new buttons and add a handler to them. But the handler you add is the address of the routine that creates the four buttons, rather than the one that displays a message...
Perhaps you want to do this instead:
AddHandler button1.Click, AddressOf button_click
AddHandler button2.Click, AddressOf button_click
AddHandler button3.Click, AddressOf button_click