This has caught me out a couple of times now so it’s definitely worth mentioning, if only for my own memory!
Here is the vb.net source code to add a databound combo box column to a datagridview. The line of code which is important here, and is the one that always catches me out is the DataPropertyName property of the combo box. This property does not exist in a standalone combo box so it’s very easy to leave it out. This combo box is databound to a dataset.
Dim cmb As New DataGridViewComboBoxColumn()
cmb.HeaderText = “Column header”
cmb.Name = “Combo box name”
cmb.DataSource = dataset.Tables(0)
cmb.DataPropertyName = “Field to bind to”
cmb.DisplayMember = “Field to show to user”
cmb.ValueMember = “Value of field”
datagridview1.Columns.Add(cmb)
And there you have it. You can now access the databound value of the combox box within the datagridview by simply parsing the dataset the datagridview is bound to. For example:
Dim dr As DataRow
For Each dr In ds.Tables(0).Rows
MsgBox(dr.Item(Combo box name).ToString)
Next
Leave a reply