Autor
|
Tema: textbox con autocompletar desde la tercera letra? (Leído 4,161 veces)
|
_CrisiS_
Desconectado
Mensajes: 286
|
Hola que tal , como le haria para que en un textbox al comenzar a escribir el apellido, apartir de la tercera letra que se digite, aparezca una lista desplegable abajo con un max de 5 registros similares.
|
|
|
En línea
|
|
|
|
Serapis
|
En el evento 'changed' compruebas la cantidad de caracteres que lleva escritos, si es igual o mayor que la cantidad deseada (3 en tu caso), buscas en una colección de textos que quieras buscar (se supone que es una colección que mantienes internamente o externamente) y extraes una subcolección que coincide con ese patrón, si la colección devuelta contiene al menos 1 elementos, lo cargas en una lista que haces emerger ('popup'), debajo del textbox (en general, aunque también vale bajo el cursor si no está muy alejado del textbox). Si no se usa un método popup, todavia puede ser fácilmente imitado, con una objeto invible con un alto para 5 ítems (o los que tu quieras, si son muchos mejor una lista, para que tenga scroll, sin tene rque porveerlo tú), en tal caso, si el patrón del usuario devuelve entradas, las pegas al control que actúa de contenedor, lo posicionas bajo el textbox, en primer plano y lo haces visible. Luego cuando el usuario seleccione un ítem de la lista, lo copias al textbox y haces invisible la lista. Un banderín debiera indicar 'seleccionado', para luego desactivar ya mostrar la lista, mientras no se borre la entrada, o bien ocultarlo simplemente cuando no coincida el patrón (no se encuentre coincidencias), y cuando se pulse en un ítem de dicha lista. y si se vuelve a cambiar el contenido del textbox, nuevamente operar como se ha indicado...
Al caso un control 'ComboBox' ya hace todo eso por tí mismo, con la salvedad que muestra la lista completa que contiene... es decir avanza hasta el ítem coincidente con la entrada en la caja de texto, pero muestra todos, incluso aunque no coincidan. Pero vamos te ahorra mucho trabajo usarlo (con respecto a montarlo por tu cuenta como te comentaba en el párrafo anterior). Tu solo debes encargarte de mantener la lista que debe contener la parte de lista del combobox (por ejemplo los messes del año, y luego el usuario escribe 'm' en la caja de texto, se selecciona marzo, cuando avance a 'ma' todavía sigue en marzo, pero cuando avance a 'may' ya se selecciona mayo.
Otra diferencia de este control, respecto de lo que tu quieres es que la selección busca con cada carácter entrado, no es posible indicar como preciso x caracteres... podría desactivarse la parte de lista del combobox, hasta que tenga 3 caracteres, pero eso exige subclasificar o bien modificar la herencia del control, en ambos casos es mucho trabajo para tan poca cosa. Si requieres que sea así, mejor acometer lo señalado en el primer párrafo...
|
|
« Última modificación: 9 Enero 2018, 01:54 am por NEBIRE »
|
En línea
|
|
|
|
_CrisiS_
Desconectado
Mensajes: 286
|
Eh llegado a realizarlo lo basico almenos con el autocompletado estandar, con las propiedades :AutoCompleteMode, AutocompleteSource. del texbox. Ahora tengo un problema como hago barra ese botón de la parte inferior redondeadao en su defecto evitar que se redimensione (cambie su tamaño con el mouse al hacerle clic) la lista
|
|
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.878
|
como hago barra ese botón de la parte inferior redondeadao en su defecto evitar que se redimensione (cambie su tamaño con el mouse al hacerle clic) Es así por diseño, no puedes configurar (no de forma administrada) ese comportamiento. Si consiguieras obtener el controlador de la ventana del menú de autocompletado, con el consiguiente P/Invoking a la APi de Windows que ello implicaria, entonces si podrías, pero no te merece la pena el esfuerzo... Si realmente consideras necesario imposibilitar el redimensionado de la ventana de autocompletado, entonces en mi opinión sería mucho más factible que utilizases implementaciones de terceras personas... como por ejemplo podría ser esta de aquí abajo que al parecer no tiene ese grip para redimensionar la ventana: Saludos.
|
|
« Última modificación: 9 Enero 2018, 14:48 pm por Eleкtro »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
primera letra mayuscula en textbox
Programación Visual Basic
|
erick185
|
1
|
7,790
|
22 Octubre 2008, 04:19 am
por cassiani
|
|
|
Identificar letra por letra en un Textbox
Programación Visual Basic
|
pungados
|
5
|
16,001
|
31 Agosto 2009, 00:21 am
por SRVAM
|
|
|
Item desde listbox a textbox visual C++?
.NET (C#, VB.NET, ASP)
|
guillermo.sxd
|
5
|
4,180
|
24 Octubre 2013, 09:20 am
por eferion
|
|
|
Comparar letra una letra en un array, con una letra del abcdario
Programación C/C++
|
Naimaderis
|
2
|
3,965
|
10 Marzo 2017, 04:24 am
por Naimaderis
|
|
|
Ucrania gana Eurovisión 2022 y Chanel se queda en tercera posición con 459 puntos, el mejor resultado desde 1995
Foro Libre
|
El_Andaluz
|
4
|
3,602
|
17 Mayo 2022, 13:08 pm
por El_Andaluz
|
|