Q.

I'm trying to create a combo box that lists a dropdown menu.  The dropdown menu is going to contain units of length -- such as mm., cm., in., ft., mi., km., etc. How would I do this using an array? Thanks! Here's what I have thus far:

Private Sub Form_Load()
    Dim Length(6) As Integer
    Dim J As Integer
        Length(1) = Millimeter
        Length(2) = Centimeter
        Length(3) = M
        Length(4) = dm
        Length(5) = dm
        Length(6) = mm
            For J = Length(1) To Length(6)
                cboStart.AddItem J
            Next J
End Sub

Asked by David Laite. Answered by the Wonk on December 8, 2002

A.

You were very close. A couple of tweaks to your existing code yields something that does what you want, I think:

 

Private Sub Form1_Load(...) Handles MyBase.Load

  Dim Length(6) As String

  Dim J As Integer

  Length(1) = "Millimeter"

  Length(2) = "Centimeter"

  Length(3) = "M"

  Length(4) = "cm"

  Length(5) = "dm"

  Length(6) = "mm"

  For J = 1 To 6

    cboStart.Items.Add(Length(J))

  Next J

  cboStart.SelectedIndex = 0

End Sub

 

If you wanted to get fancy, you could use an ArrayList and data binding, saving yourself the for-loop:

 

Private Sub Form1_Load(...) Handles MyBase.Load

  Dim Length As New ArrayList()

  Length.Add("Millimeter")

  Length.Add("Centimeter")

  Length.Add("M")

  Length.Add("cm")

  Length.Add("dm")

  Length.Add("mm")

  cboStart.DataSource = Length

End Sub

 

If you didn’t already have the array of values lying around, you could also add them to the combo box directly:

 

Private Sub Form1_Load(...) Handles MyBase.Load

  cboStart.Items.Add("Millimeter")

  cboStart.Items.Add("Centimeter")

  cboStart.Items.Add("M")

  cboStart.Items.Add("cm")

  cboStart.Items.Add("dm")

  cboStart.Items.Add("mm")

  cboStart.SelectedIndex = 0

End Sub

Feedback

I have feedback on this Ask The Wonk answer