I successfully made a button that can generate buttons. But unfortunately when I tried creating a function that can move buttons, It only move buttons that are already declared.
Need your help badly. Thanks.
Know the answer? Post it — somebody with the same question will find it here.
Sign in to answer this question
It is the same account you read, post and publish with — and you will come straight back to this page.
Rester DelarmentePosted Feb 18, 2011, 1:48 AM
FroglegPosted Feb 18, 2011, 1:25 AM
Private oControlOffsetPoint As Point
Dim buttonNumber As Integer = 0
Dim isMoveable As New List(Of Integer)
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
Private Sub CreateDynamicButton()
' Create a Button object
Dim dynamicButton(buttonNumber) As Button
dynamicButton(buttonNumber) = New Button
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).MouseUp, AddressOf DynamicButton_MouseUp
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 += 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 isMoveable.Contains(sender.Text) = False Then
If e.Button = Windows.Forms.MouseButtons.Left Then
sender.Location = New Point(sX, sY)
sender.Left = sX
sender.Top = sY
End If
End If
End Sub
Private Sub DynamicButton_Click(ByVal sender As Object, ByVal e As System.EventArgs)
MessageBox.Show("Set Table " & sender.Text)
End Sub
Private Sub DynamicButton_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
If e.Button = Windows.Forms.MouseButtons.Right Then
If isMoveable.Contains(sender.Text) Then
isMoveable.Remove(sender.Text)
Else
isMoveable.Add(sender.Text)
MessageBox.Show("Locked " & sender.Text)
End If
End If
End Sub
Rester DelarmentePosted Feb 18, 2011, 12:51 AM
FroglegPosted Feb 17, 2011, 12:17 PM
Dim buttonNumber As Integer = 0
Private Sub CreateDynamicButton()
' Create a Button object
Dim dynamicButton(buttonNumber) As Button
dynamicButton(buttonNumber) = New Button
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 += 1
End Sub
Private Sub DynamicButton_Click(ByVal sender As Object, ByVal e As System.EventArgs)
MessageBox.Show("Set Table " & sender.Text)
End Sub
Rester DelarmentePosted Feb 16, 2011, 9:51 PM
FroglegPosted Feb 16, 2011, 12:52 PM