I use this code:
Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
MyBase.OnLoad(e)
Dim btn = New Button()
Controls.Add(btn)
btn.Location = New Point((ClientSize.Width - btn.Width) \ 2, _
(ClientSize.Height - btn.Height) \ 2)
End Sub
Reference: Centering (perfectly) dynamically created buttons on form?