Here you go, so far that was I've done.
It has an unmovable button and it can generates movable buttons. But the problem now, all generated buttons have the same name.
Public Class Form1
Private oControlOffsetPoint As Point
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
CreateDynamicButton()
End Sub
Public Function ChrW(ByVal buttonNumber As Integer) As Char
End Function
Private Sub CreateDynamicButton()
' Create a Button object
Dim dynamicButton(0) As Button
dynamicButton(0) = New Button
Dim buttonNumber As Integer = 0
Dim b As String
b = buttonNumber
' Set Button properties
dynamicButton(buttonNumber).Location = New Point(20, 150)
dynamicButton(buttonNumber).Height = 40
dynamicButton(buttonNumber).Width = 300
' Set background and foreground
dynamicButton(buttonNumber).BackColor = Color.Red
dynamicButton(buttonNumber).ForeColor = Color.Blue
dynamicButton(buttonNumber).Text = b
dynamicButton(buttonNumber).Name = buttonNumber
dynamicButton(buttonNumber).Font = New Font("Georgia", 16)
AddHandler dynamicButton(buttonNumber).Click, AddressOf DynamicButton_Click
AddHandler dynamicButton(buttonNumber).MouseMove, AddressOf Button_MouseMove
' Add Button to the Form. Placement of the Button
' will be based on the Location and Size of button
Controls.Add(dynamicButton(buttonNumber))
buttonNumber = (buttonNumber + 1)
End Sub
Private Sub Button_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
Dim sX As Integer = RectangleToClient(New Rectangle(Windows.Forms.Cursor.Position.X, Windows.Forms.Cursor.Position.Y, 0, 0)).Left - oControlOffsetPoint.X
Dim sY As Integer = RectangleToClient(New Rectangle(Windows.Forms.Cursor.Position.X, Windows.Forms.Cursor.Position.Y, 0, 0)).Top - oControlOffsetPoint.Y
If e.Button = Windows.Forms.MouseButtons.Left Then
sender.Location = New Point(sX, sY)
sender.Left = sX
sender.Top = sY
End If
End Sub
Private Sub DynamicButton_Click(ByVal sender As Object, ByVal e As System.EventArgs)
MessageBox.Show("Set Table")
End Sub
End Class