Hello
I am trying to create a combo box that would display data from a dataset, and also a 'Please Select' as the first
item. I have written the following code which derives from a combo box and it works fine in visual studio 2003 but
in 2008 would not display the comboboxtext (which is 'Please select'). any one has any ideas what i have done wrong?
[Public Class DoubleDataSourceCombo
Inherits ComboBox
Dim myDataTable As DataTable
Public comboboxText As String
Protected Overrides Sub OnDataSourceChanged(ByVal e As System.EventArgs)
MyBase.OnDataSourceChanged(e)
Static blnDataSourceSet As Boolean = False
If blnDataSourceSet = True Then
blnDataSourceSet = False
Return
End If
myDataTable = New DataTable
If DisplayMember <> "" Then myDataTable.Columns.Add(Me.DisplayMember)
If ValueMember <> "" Then myDataTable.Columns.Add(Me.ValueMember)
Dim row As DataRow = myDataTable.NewRow
If DisplayMember <> "" Then
row.Item(Me.DisplayMember) = comboboxText
End If
If ValueMember <> "" Then
row.Item(Me.ValueMember) = DBNull.Value
'row.Item(Me.ValueMember) = -1
End If
myDataTable.Rows.Add(row)
For Each o As Object In Me.DataSource
row = myDataTable.NewRow
If DisplayMember <> "" Then
row.Item(Me.DisplayMember) = o(Me.DisplayMember)
End If
If ValueMember <> "" Then
row.Item(Me.ValueMember) = o(Me.ValueMember)
End If
myDataTable.Rows.Add(row)
Next
Dim ar As New ArrayList
For Each oo As Object In myDataTable.DefaultView
ar.Add(oo)
Next
blnDataSourceSet = True
Me.DataSource = myDataTable.DefaultView
End Sub
End Class
'then in windows form i have the following code:
dim cbo as new doubledatasourcecombo
cbo.comboboxtext="Please Select"
cbo.displaymember="EmployeeName"
cbo.valuemember="PersonnelID"
cbo.datasource=dr 'which is a datarow array]
any one has any ideas on this?