Si vous définissez AutoCompleteMode = SuggestAppend
et AutoCompleteSource = ListItems
lorsqu'un utilisateur saisit quelque chose, la zone de liste déroulante affiche automatiquement les entrées qui commencent par les caractères saisis.
Ensuite, en gérant les événements SelectedIndexChanged
ou SelectedValueChanged
, vous pourrez intercepter lorsqu'un utilisateur tape exactement une valeur présente dans la liste des valeurs.
Si vous aussi ne voulez absolument pas à l'utilisateur de taper quelque chose qui ne figure pas dans la liste, eh bien oui, vous devez gérer par exemple l'événement KeyDown
comme:
private void comboBox1_KeyDown(object sender, KeyEventArgs e)
{
char ch = (char)e.KeyValue;
if (!char.IsControl(ch))
{
string newTxt = this.comboBox1.Text + ch;
bool found = false;
foreach (var item in this.comboBox1.Items)
{
string itemString = item.ToString();
if (itemString.StartsWith(newTxt, StringComparison.CurrentCultureIgnoreCase))
{
found = true;
break;
}
}
if (!found)
e.SuppressKeyPress = true;
}
}
Merci! Je voulais juste que je puisse le faire sans le coder moi-même ... Devinez un autre composant de la bibliothèque pour mon set ... –