ComboBox AutoComplete Custom Capabilities

Comment puis-je étendre la fonctionnalité de saisie semi-automatique d’un ComboBox WinForm afin, par exemple, de rechercher des correspondances d’éléments à l’aide d’une expression régulière ou de rechercher plus facilement des éléments contenant le texte saisi?

AutoCompleteMode dans Windows Forms ne prend pas (pour le moment) en charge le filtrage avec expression régulière ou la correspondance à partir du milieu. Il ne prend en charge que le filtrage par préfixe.

L’API permettant de réinitialiser les options de saisie semi-automatique en cours de saisie est IAutoCompleteDropDown :: ResetEnumerator. Vous devez l’appeler dans l’événement TextChanged. Sous Windows Vista ou une version ultérieure, vous pouvez appeler IAutoComplete2 :: SetOptions avec ACO_NOPREFIXFILTERING pour désactiver le filtrage par préfixe.

Pour rechercher l’élément de liste existant qui correspond le mieux à ce que l’utilisateur a saisi, vous pouvez définir la propriété AutoCompleteMode de la zone de liste déroulante sur AutoCompleteMode.Append et la propriété AutoCompleteSource sur AutoCompleteSource.ListItems.

Si vous souhaitez utiliser une logique plus complexe pour effectuer l’auto-complétion, envisagez de faire quelque chose avec l’événement TextChanged. Un exemple