1

我在组合框中有自动完成功能,它可以正常工作但几乎没有问题,我让建议列表出现在文本长度超过 3 个字符的情况下,但列表出现在 4 个字符的长度之后(当用户输入第五个字符时的文本)这意味着当列表第一次执行的代码没有出现在此处时是Text_Changed事件中的代码

 Private Sub TxtItem_TextChanged(sender As System.Object, e As System.EventArgs) Handles TxtItem.TextChanged


    If Trim(TxtItem.Text) <> "" And Trim(TxtItem.Text).Length > 3 Then
        'Autocomplete
        Dim Bl As New ItemBL
        Dim suggestions = Bl.DisplayLikeNameList(Trim(TxtItem.Text))
        Dim MySource As New AutoCompleteStringCollection()
        MySource.AddRange(suggestions.ToArray)

        With TxtItem
            .AutoCompleteMode = AutoCompleteMode.Suggest
            .AutoCompleteSource = AutoCompleteSource.CustomSource
            .AutoCompleteCustomSource = MySource
        End With
        TxtItem.Select(TxtItem.Text.Length, 0)
        Exit Sub
    Else
        TxtItem.AutoCompleteMode = AutoCompleteMode.None
    End If

End Sub

注意:此问题会导致应用程序在 Windows XP 上退出(有时),但不会影响 Windows 7

4

1 回答 1

0

在这篇文章中找到了答案: 动态更改文本框的自动完成列表会导致 AccessViolationException,有什么建议吗?

AutoComplete所以我必须在表单事件中创建全局建议列表并初始化 属性load,它运行良好。

于 2012-05-28T13:48:42.867 回答