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