Вы должны использовать combobox.autocompletemode, чтобы получить имена lik Congo, congress, когда пользователь вводит текст наподобие «CO»
вы можете использовать свой собственный источник данных для comboBox1.AutoCompleteSource
this.comboBox1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest;
this.comboBox1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems;
this.comboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.comboBox1.FormattingEnabled = true;
this.comboBox1.Location = new System.Drawing.Point(113, 192);
this.comboBox1.Name = "comboBox1";
this.comboBox1.Size = new System.Drawing.Size(121, 20);
Затем заполните источник элементов combox такими объектами, которые переопределяют метод ToString
public class POCLRO
{
public int ID { get; set; }
public string Name { get; set; }
public override string ToString()
{
return Name;
}
}
Редактировать: Необходимо выполнить проверку текста, введенного пользователем в поле со списком, если пользователь выбирает выпадающий элемент, предложенный автоматическим завершением, проверка возвращает значение true, иначе возвращается false ...
Сделайте что-то вроде ниже ...
Создайте обработчик событий KeyDown для комбинированного списка и проверьте наличие клавиши Enter. Обратите внимание, что после нажатия пользователем введите текст в поле со списком выбран (как в, выбран, как если бы вы делали операцию вырезания или копирования), и фокус остается в поле со списком.
Если нажата клавиша ввода, вызовите функцию проверки, которая будет делать все, что вам нужно, если введенное значение совпадает с именем, которое было сохранено в базе данных ...
Вы можете вызывать эту же функцию в обработчике события Leave, чтобы запретить пользователю выходить из выпадающего списка, пока не будет сделан правильный выбор.
private void ComboBox_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
ValidateSelection();
}
}
private bool validation()
{
// do validation here
}
private void ComboBox_Leave(object sender, EventArgs e)
{
if(!ValidateSelection())
{
ComboBox.Focus();
}
}