Mega Code Archive

 
Categories / C# / Components
 

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;             }         }     } }