Use an Autocomplete Combo Box
using System; using System.Windows.Forms; using System.Drawing; public class AutoCompleteComboBoxTest : System.Windows.Forms.Form { public AutoCompleteComboBoxTest(){ AutoCompleteComboBox combo = new AutoCompleteComboBox(); combo.Location = new Point(10,10); this.Controls.Add(combo); combo.Items.Add("Aaaaaa"); combo.Items.Add("Bbbbbbbbb"); combo.Items.Add("Ccccccccccc"); } public static void Main(){ Application.Run(new AutoCompleteComboBoxTest()); } } public class AutoCompleteComboBox : ComboBox { private bool controlKey = false; protected override void OnKeyPress( System.Windows.Forms.KeyPressEventArgs e) { base.OnKeyPress(e); if (e.KeyChar == (int)Keys.Escape) { this.SelectedIndex = -1; this.Text = ""; controlKey = true; } else if (Char.IsControl(e.KeyChar)) { controlKey = true; } else { controlKey = false; } } protected override void OnTextChanged(System.EventArgs e) { base.OnTextChanged(e); if (this.Text != "" && !controlKey) { string matchText = this.Text; int match = this.FindString(matchText); if (match != -1) { this.SelectedIndex = match; this.SelectionStart = matchText.Length; this.SelectionLength = this.Text.Length - this.SelectionStart; } } } }
1. | Buildin AutoCompleteMode for ComboBox | ||
2. | Auto Complete ComboBox |