Exemple Simple d’AutoComplet

Author:

Créer,une,zone,texte,numérique
{filelink=15668}

using System;
using System.Windows.Forms;
using System.Drawing;

public class AutoCompleteComboBoxTest : System.Windows.Forms.Form {

   public AutoCompleteComboBoxTest(){
       this.Text = "AutoComplet ComboBox";
        MonAutoCompleteComboBox myCmb = new MonAutoCompleteComboBox();
        myCmb.Location = new Point(10, 10);
        this.Controls.Add(myCmb);

        myCmb.Items.Add("Janvier");
        myCmb.Items.Add("Fevrier");
        myCmb.Items.Add("Mars");
        myCmb.Items.Add("Avril");

   }
   public static void Main(){
       Application.Run(new AutoCompleteComboBoxTest());
   }
}

public class MonAutoCompleteComboBox : 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;
            }
        }
    }
}

Leave a Reply

Your email address will not be published. Required fields are marked *