Estoy trabajando en C# con un cuadro de texto que actúa como entrada para una base de datos (Access SQL) búsqueda de registros por número de identificación. Quiero poder usar Autocompletar en el cuadro de texto pero con algunas limitaciones.C# Cuadro de texto Autocompletar: Limitar a ~ 50 sugerencias
El gran problema es que el número de identificadores en el sistema es del orden de miles, así que en lugar de llenar el cuadro de Autocompletar una vez con todos, necesito monitorear lo que está en el cuadro de texto y solo mostrar las sugerencias de autocompletar cuando hay ~ 50 o menos opciones.
Actualmente, estoy haciendo esta consulta en cada KeyDown: SELECT count (*) de la tabla donde ID, como una 'TextBox.Text%'
Cuando el recuento es inferior al 50 lleno el autocompletar con los resultados de una versión de ID SELECTA de la declaración anterior. Esto me ha llevado a varios problemas, la mayoría parecen ser caprichos C# que no entiendo.
1) Cuando borro o agrego al AutoCompleteCustomSet dentro de un solo evento KeyDown, la clave real presionada no se agrega a la cadena (es decir, el comportamiento de entrada de cuadro de texto normal no ocurre).
2) Intenté separar la actualización de AutoCompleteCustomeSet en un evento diferente (KeyPress o KeyUp) pero esto provocó un bloqueo o la visualización de autocompletar solo se mostraría brevemente antes de ocultarse.
Siento que este problema debe ser común y lo estoy haciendo de la manera incorrecta. ¿Alguien puede ofrecer algún consejo? ¡Gracias!
EDIT: se trata de Windows Forms
Edit2: Una tapa 50 seleccione no soluciona el problema de que a medida que el usuario escribe (y potencialmente teclas de retroceso y re-tipos) de la parte superior 50 van a cambiar.
¿Esto es WinForms? WPF? ASP.NET? – LBushkin