Рейтинг:
1
Maciej Los
Что ж... Это нормальное поведение контроля с помощью AutoCompleteCustomSource[^], потому что это автоматически завершает ввод строк с помощью сравнение вводимого префикса с префиксами всех строк в поддерживаемом источнике.
Если вы хотите изменить его, вы должны создать textBox1_Click
событие и там вы можете реализовать метод, который сравнивает введенную строку со строкой пользовательского источника. Например:
TextBox txt = (TextBox)sender;
if(txt.Text.Length<2) return;
string s = txt.Text;
s = txt.AutoCompleteCustomSource.OfType<string>.FirstOrDefault(x=> x.Contains(s));
if(s != string.Empty) txt.Text = s;
Он работает так, как и ожидалось, когда ниже свойств
TextBox
устанавливаются как показано на рисунке:
AutoCompleteMode = SuggestAppend;
AutoCompleteSource = CustomSource;
Kishore yasoju
Я получил сообщение об ошибке, как: система.В LINQ.Перечислимый.OfType<tresult>(System.Коллекции.Интерфейс IEnumerable)' является 'способ', который не является допустимым в данном контексте
Maciej Los
Очень странный... Он работает для меня (фреймворк в проекте установлен на 4.5).
Попробуйте заменить это:
s = txt.AutoCompleteCustomSource.OfType<string>.FirstOrDefault(x=> x.Contains(s));
с:
s = txt.AutoCompleteCustomSource.Cast<string>.FirstOrDefault(x=> x.Contains(s));
Давайте посмотрим, если это поможет.
Какую версию фреймворка вы используете в своем проекте?
Kishore yasoju
Я попробовал сделать это Мацей, но получил ту же ошибку
Системы".Данных.EnumerableRowCollectionExtensions.Cast<tresult>(System.Data.EnumerableRowCollection)' - это "метод", который недопустим в данном контексте". Кстати, я использую Visual Studio 2008 и работаю над приложением windows CE.
Kishore yasoju
А моя-да.NET framweork 3.5