VB.NET - Creating multiple controls at runtime inside flow layout panel @JFLHV
VB.NET - Creating multiple controls at runtime inside flow layout panel  @JFLHV
Uploaded August 2019 | Updated September 2026, 1 week ago
Steps to add multiple panels at runtime that contain other controls such as labels and buttons in VB.NET using a flow layout panel

#vbdotnet

Visual Studio Community 2017
.NET Framework 4.6.1
Windows 10

Partial Code:
---------------------
'Indicates current contact panel to add controls to
Private _CurrentContactPanelName As String = Nothing

'Used to give unique control names such as label1, label2 etc
Private _ContactPanelsAddedCount As Integer = 0

'Add contact panel to flow layout panel
Public Sub CreateContactPanel()

Dim contactPanel As Panel
contactPanel = New Panel()

'Set panel properties
With contactPanel
.BackColor = Color.White
.Size = New Size(420, 50)
.Name = "pnlContact" + (_ContactPanelsAddedCount + 1).ToString
End With

'Add panel to flow layout panel
flpMain.Controls.Add(contactPanel)

'Update panel variables
_CurrentContactPanelName = contactPanel.Name
_ContactPanelsAddedCount += 1

End Sub

'Add new delete button to contact panel
Private Sub CreateContactDeleteBtn(ByVal panelName As String)

Dim contactDeleteButton As Button
contactDeleteButton = New Button

'Set button properties
With contactDeleteButton
.AutoSize = False
.Size = New Size(90, 30)
.BackColor = Color.Silver
.ForeColor = Color.Black
.Location = New Point(300, 10)
.Name = "btnContactDelete" + (_ContactPanelsAddedCount).ToString
.Text = "Delete"
End With

'Add button to panel
For Each controlObject As Control In flpMain.Controls
If controlObject.Name = panelName Then
controlObject.Controls.Add(contactDeleteButton)
End If
Next

'Add handler for click events
AddHandler contactDeleteButton.Click, AddressOf DynamicButton_Click

End Sub


'Remove handlers and contact panel
Public Sub DynamicButton_Click(ByVal sender As Object, ByVal e As EventArgs)

Dim parentPanelName As String

parentPanelName = Nothing

'Remove handler from sender
For Each controlObj As Control In flpMain.Controls
For Each childControlObj As Control In controlObj.Controls
If childControlObj.Name = sender.name Then
RemoveHandler childControlObj.Click, AddressOf DynamicButton_Click
parentPanelName = childControlObj.Parent.Name
End If
Next
Next

'Remove contact panel
For Each controlObj As Control In flpMain.Controls
If controlObj.Name = parentPanelName Then
flpMain.Controls.Remove(controlObj)
controlObj.Dispose()
End If
Next

End Sub
VB.NET - Creating multiple controls at runtime inside flow layout panelChange YouTube Shorts thumbnail after uploadTodays date keyboard shortcut ExcelGrowing fading circle green screenGame Show Times Up Sound EffectResize green screen in Windows ClipchampVB.NET - Sort listview by any columnC# - Show partial image in a pictureboxVB.NET - Add installed system fonts to a comboboxRemoving SATA laptop hard drive to transfer filesConnect Zoom H1 to Mac USB for GarageBand or iMovieExport image for thumbnail in iMovie macOS
JFLHV |

VB.NET - Creating multiple controls at runtime inside flow layout panel

SHARE TO X SHARE TO REDDIT SHARE TO FACEBOOK WALLPAPER