locked
ComboBox with 'Please Select' RRS feed

  • Question

  •  

    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?

    Tuesday, January 13, 2009 9:05 AM

Answers