Use an Autocomplete Combo Box : ComboBox « Components « C# / C Sharp






Use an Autocomplete Combo Box

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








Related examples in the same category

1.Buildin AutoCompleteMode for ComboBoxBuildin AutoCompleteMode for ComboBox
2.Auto Complete ComboBoxAuto Complete ComboBox