Dynamic Dropdown in VB# .Net

Public Class Form1
Dim i As Int32 = 0
Dim x As Int32 = 0
Dim y As Int32 = 0

'Code By Britman Dated 17-02-2011 To Creat Dynamic Dropdownlist
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
x = 0
y = 0

i = i + 1
Dim strTypes() As String = New String() {"A", "O", "E"}


Dim ddlDynamicDropDown As ComboBox = New ComboBox()
ddlDynamicDropDown.Location = New Point(x, y)
ddlDynamicDropDown.Width = 150
ddlDynamicDropDown.Text = "--Select--"
ddlDynamicDropDown.Items.AddRange(strTypes)
ddlDynamicDropDown.Name = i.ToString()
AddHandler ddlDynamicDropDown.SelectedIndexChanged, AddressOf doEvents

'ddlDynamicDropDown.SelectedIndexChanged += New System.EventHandler(doEvents)

Me.Controls.Add(ddlDynamicDropDown)
End Sub


Public Sub doEvents(ByVal sender As Object, ByVal e As EventArgs)



Dim ddlDynamicDropDownSender As ComboBox = sender ' as System.Windows.Forms.ComboBox

If ddlDynamicDropDownSender.Text = "A" Or ddlDynamicDropDownSender.Text = "O" Then
If Convert.ToInt32(ddlDynamicDropDownSender.Name) >= i Then
'x = x + 20;
y = y + 20
i = i + 1
Dim strTypes() As String = New String() {"A", "O", "E"}


Dim ddlDynamicDropDown As ComboBox = New ComboBox()
ddlDynamicDropDown.Location = New Point(x, y)
ddlDynamicDropDown.Width = 150
ddlDynamicDropDown.Text = "--Select--"
ddlDynamicDropDown.Items.AddRange(strTypes)
ddlDynamicDropDown.Name = i.ToString()

AddHandler ddlDynamicDropDown.SelectedIndexChanged, AddressOf doEvents
Me.Controls.Add(ddlDynamicDropDown)
End If


Else

Dim x As Integer


For x = Convert.ToInt32(ddlDynamicDropDownSender.Name) + 1 To i Step x + 1


Dim ddlDynamicDropDown As ComboBox = FindControl(x.ToString()) 'as System.Windows.Forms.ComboBox

Me.Controls.Remove(ddlDynamicDropDown)
y = y - 20
Next


i = Convert.ToInt32(ddlDynamicDropDownSender.Name)



End If


End Sub
Private Function FindControl(ByVal ControlName As String) As Control
If ControlName.Length = 0 Or Me.Controls.Find(ControlName, True).Length = 0 Then
Return Nothing
End If


Return Me.Controls.Find(ControlName, True)(0)

End Function

End Class

No comments:

Post a Comment