2010-03-10 18 views
6

Tengo un formulario que tiene un control de cuadro combinado. He seleccionado la propiedad de estilo desplegable para DropDown. También configuré DropDown Width a 250. He configurado el modo autocompletar para que sugiera y el autocompletar el origen a listitems. funciona absolutamente bien cuando hago clic en el menú desplegable. pero cuando escribo algo, el modo autocompletar activa un desplegable que tiene un ancho pequeño.Trabajar con .NET Combo Boxes

cualquier ayuda aprecie. Quiero saber cómo aumentar el ancho del menú desplegable autocompletar a través del código para que los elementos de la lista se vean correctamente. estoy usando C#

+1

Tal vez compartir parte de su código puede ayudarnos a localizar el problema. :) –

Respuesta

4

Sí, esto es por diseño. ComboBox usa el SHAutoComplete API function para implementar la función de autocompletar. Tenga en cuenta la declaración, la función toma un control de la parte del cuadro de texto de ComboBox. Como tal, no tiene idea de que realmente está proporcionando información de autocompletado para un ComboBox en lugar de un TextBox. En consecuencia, no hay nada que pueda hacer para compensar el ancho desplegable no estándar que usa.

Bueno, eso explica por qué no funciona. Arreglarlo es técnicamente posible pero bastante feo. Tendría que ejecutar el código en el evento KeyUp y usar EnumTheadWindows() para encontrar el manejador de la ventana de autocompletar. Luego puede usar SetWindowPos() para agrandarlo. Ya existe un código similar a este en ComboBox.cs (AutoCompleteDropDownFinder.FindDropDowns), utilice el origen de referencia o el reflector para ayudarlo a hacerlo bien. ¡Buena suerte!

+2

Parece que Calle ya hizo el trabajo por ti. –

2

EDIT:
Quité mi primera sugerencia para llegar a un nuevo enlace:

En realidad es posible controlar el ancho de la caja desplegable de autocompletar, pero es una poco complicado e implica el uso de la API victoria ampliamente ...

Combobox too small when doing Suggest

-1

Tal vez este artículo que escribí en Codeproject podría ayudarle en relación con los cuadros combinados-desplegable y una forma que me han pirateado esto ...