Text and Data value in a combobox

Posted on 2008-10-26
Last Modified: 2012-05-05
Hi all,

What i need is a way to store an ID with a text label in a combobox format...

Exactly the same thing as a combobox in HTML

How can I do this in my windows VB application?


Question by:drxav
  • 2
LVL 16

Expert Comment

ID: 22806765
You can use the ItemData property for this. This can contain numerical values for each item.


    Dim l_lIdx As Long    

    For l_lIdx = 1 To 10

        Call Combo1.AddItem("Item " & CStr(l_lIdx))

        Combo1.ItemData(Combo1.NewIndex) = 100 + l_lIdx


Private Sub Combo1_Click()

    Debug.Print Combo1.ItemData(Combo1.ListIndex)

End Sub

Open in new window

LVL 62

Accepted Solution

Fernando Soto earned 250 total points
ID: 22807662
Hi drxav;

In Windows Forms the ComboBox.ValueMember is used to hold data with the associated items in the drop down list. This member, ValueMember, needs to be a property of the bound data source. This means to use ValueMember you need to use the DataSource of the ComboBox and not just adding items to its list.

See code snippet to for example of its use.


Public Class Form1

    Public Class ComboBoxItems

        Private _item As String

        Public Property ItemMember() As String


                Return _item

            End Get

            Set(ByVal value As String)

                _item = value

            End Set

        End Property

        Private _value As String

        Public Property ValueMember() As String


                Return _value

            End Get

            Set(ByVal value As String)

                _value = value

            End Set

        End Property

    End Class

    Private cbiList As New List(Of ComboBoxItems)()

    Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As Object, _

        ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged

        ' The Selected item and vale was

        Dim item As String = CType(Me.ComboBox1.SelectedItem, ComboBoxItems).ItemMember

        Dim value As String = Me.ComboBox1.SelectedValue

        MessageBox.Show("Selected Item is = " & item & " and the Value Member is = " & value)

    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim cbi As ComboBoxItems

        RemoveHandler ComboBox1.SelectedIndexChanged, AddressOf ComboBox1_SelectedIndexChanged

        For idx As Integer = 0 To 10

            cbi = New ComboBoxItems()

            cbi.ItemMember = "Item Number " & idx.ToString()

            cbi.ValueMember = idx.ToString()



        ComboBox1.DataSource = cbiList

        ComboBox1.DisplayMember = "ItemMember"

        ComboBox1.ValueMember = "ValueMember"

        AddHandler ComboBox1.SelectedIndexChanged, AddressOf ComboBox1_SelectedIndexChanged

    End Sub

End Class

Open in new window


Author Closing Comment

ID: 31510068
that works fantastically!!!

Thank you so much Fernando,

LVL 62

Expert Comment

by:Fernando Soto
ID: 22818714
Not a problem, glad I was able to help.  ;=)

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Introduction While answering a recent question ( in the VB classic zone, I wrote some VB code in the (Office) VBA environment, rather than fire up my older PC.  I didn't post completely correct code o…
Enums (shorthand for ‘enumerations’) are not often used by programmers but they can be quite valuable when they are.  What are they? An Enum is just a type of variable like a string or an Integer, but in this case one that you create that contains…
As developers, we are not limited to the functions provided by the VBA language. In addition, we can call the functions that are part of the Windows operating system. These functions are part of the Windows API (Application Programming Interface). U…
Get people started with the process of using Access VBA to control Excel using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Excel. Using automation, an Access application can laun…

919 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!

Get 1:1 Help Now