Pregunta

Estoy tratando de hacer un cuadro combinado que se comporte de forma similar a la barra de herramientas de Firefox 3, con el siguiente comportamiento:

  1. Escribe texto
  2. Devolver resultados de forma asíncrona
  3. Arriba y abajo selecciona los resultados en la lista, PERO deja el texto que se escribió en el cuadro de entrada para que el usuario pueda continuar editando para limitar el conjunto de resultados de forma diferente
  4. Enter dispara un evento que el formulario principal manejará

Tengo los resultados asincrónicos y todos los filtros funcionan, pero no tengo un buen método para mostrar y seleccionar dentro de los resultados.

Un cuadro combinado rellena automáticamente el cuadro de entrada con lo que está seleccionado cuando se mueve hacia abajo. Falla # 3.

Tengo los controles DevExpress, pero su cuadro combinado hace lo mismo y tampoco puedo averiguar cómo anular.

Un LookupEdit no permite escribir cosas arbitrarias. Tampoco lo hace un PopupContainerEdit.

Quiero un comportamiento que sea como un cuadro de texto con un cuadro de lista debajo, y los eventos arriba / abajo en el cuadro de texto pasan al cuadro de lista. Pero si trato de hacer un control personalizado que combine los dos de esa manera, no tengo ni idea de cómo " flotar " el cuadro de lista como el menú desplegable en un cuadro combinado normal.

¡Las pistas son muy apreciadas!

¿Fue útil?

Solución

Es posible que necesite usar un cuadro de texto en lugar de un cuadro combinado porque el uso de las teclas de flecha está seleccionando valores de la lista de combinaciones y sobrescribiendo su valor actual. Al usar el cuadro de texto, puede hacer una búsqueda en el evento TextChanged y puede almacenar el valor escrito actualmente al anular el evento KeyPress para recopilar y almacenar las claves que el usuario ha escrito.
La lista emergente de valores tendría que ser auto dibujada en el evento de pintura.

Esto puede parecer demasiado complicado, pero es probable que tengas que abandonar el control de combo e implementar algunas de sus funciones.

Otros consejos

He estado usando el control Autocompletar de Skybound. Es gratis. Se puede personalizar, de modo que se pueda aproximar al comportamiento de la barra Awesom.

http://dev.skybound.ca/Products/AutoComplete/

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top