vb.net中使用组合框自动完成问题

时间:2016-11-13 20:03:26

标签: vb.net combobox autocomplete

我有一个由数据表填充的组合框,代码在用户编写时搜索位于该字段任意位置的文本字符串,到目前为止没问题。

所以问题是:当我写第三个字符时,组合框会自动填充第一个结果,并且无法输入任何其他内容。

我已经尝试过使用所有AutocompleteMode& AutocompleteSourse属性设置和组合。 这就是我寻求帮助的原因。 代码如下:

Private Sub ComboListadoRemitente_KeyUp(sender As Object, e As KeyEventArgs)   Handles ComboListadoRemitente.KeyUp

    Dim strText As String

    strText = ComboListadoRemitente.Text

    If Len(strText) > 2 Then

        ComboListadoRemitente.DataSource = dtListado.Select("listado LIKE '%" & strText & "%'")

        ComboListadoRemitente.DroppedDown = True

        Cursor.Current = Cursors.Default

    End If
End Sub

由于

1 个答案:

答案 0 :(得分:0)

最后我得到了一些运作良好的东西,它不是最终版本,肯定可以进一步改进,这里是代码:

Public Sub ComboListadoRemitente_KeyUp(sender As Object, e As KeyEventArgs) Handles ComboListadoRemitente.KeyUp

        Dim strText As String

        strText = ComboListadoRemitente.Text


        If ComboListadoRemitente.Text = "" Then

            ComboListadoRemitente.DataSource = Me.dtListado

            ComboListadoRemitente.ValueMember = "Id"

            ComboListadoRemitente.DisplayMember = "listado"

            ComboListadoRemitente.SelectedIndex = -1

            ComboListadoRemitente.DroppedDown = False

        End If



        If Len(strText) > 2 Then

            ComboListadoRemitente.DataSource = dtListado.Select("listado LIKE '%" & strText & "%'")

            ComboListadoRemitente.ValueMember = "Id"

            ComboListadoRemitente.DisplayMember = "listado"

            If ComboListadoRemitente.Items.Count <> 0 Then

                ComboListadoRemitente.DroppedDown = True

                ComboListadoRemitente.SelectedIndex = -1

                ComboListadoRemitente.Text = ""

                ComboListadoRemitente.SelectedText = strText

                strText = ""

                Cursor.Current = Cursors.Default


            Else

                ComboListadoRemitente.DataSource = Me.dtListado

                ComboListadoRemitente.ValueMember = "Id"

                ComboListadoRemitente.DisplayMember = "listado"

                ComboListadoRemitente.SelectedIndex = -1

                ComboListadoRemitente.Text = ""

                ComboListadoRemitente.SelectedText = strText

                strText = ""

                ComboListadoRemitente.DroppedDown = False



            End If

        End If

    End Sub