Я пытаюсь реализовать автозаполнение текстового поля с помощью пользовательского источника данных в виде массива, который показывает предложения по вводу одного символа.Но когда я запускаю программу, автозаполнение начинается только после ввода второго символа.Когда я отладил, я увидел, что в AutoCompleteNameCollection есть данные, но они не отображаются в предложении до ввода второго символа.
Этот код, который я написал в событии textchange.
arr = LoadName(empid_txt.Text.Trim()); //arr is string array
namesCollection.AddRange(arr);
this.empid_txt.AutoCompleteMode = AutoCompleteMode.Suggest;
this.empid_txt.AutoCompleteSource = AutoCompleteSource.CustomSource;
this.empid_txt.AutoCompleteCustomSource = namesCollection;
В LoadEvent я инициализировал AutoCompleteNameCollection с пустым массивом.
namesCollection.AddRange(arr);// here arr is empty
empid_txt.AutoCompleteMode = AutoCompleteMode.Suggest;
empid_txt.AutoCompleteSource = AutoCompleteSource.CustomSource;
empid_txt.AutoCompleteCustomSource = namesCollection;
Но это не работает до ввода второго символа.Однако, если вместо массива я инициализирую AutoCompleteNameCollection пустой строкой, например: namesCollection.Add ("");он работает для односимвольного ввода, но иногда дает AccessViolationException: Попытка чтения или записи в защищенную память.Так есть ли способ, которым я могу решить эту проблему?