JASoft.org

El blog de José Manuel Alarcón Aguín. Programación web y mucho más...

MENÚ - JASoft: JM Alarcón

Habilitar auto-completar en controles de Windows Forms

Se trata éste de un truco muy útil y  muy sencillo, si bien muchos programadores desconocen.

En la versión 2.0 de la plataforma .NET algunos controles para interfaz de usuario con Windows Forms (en concreto los cuadros de texto y los combos, tanto los normales como los que van dentro de los ToolStrip), permiten mostrar a los usuarios sugerencias acerca de los datos que están introduciendo de una manera muy sencilla. Esta caraterística no estaba presente en la versión 1.x de la plataforma.

Para ello basta con seleccionar el control en cuestión y ajustar sus propiedades AutoCompleteMode y AutoCompleteSource (ver figura lateral).

La primera nos sirve para indicar de qué modo se hara el auto-rellenado. Puede ser simplemente una sugerencia desplegada por debajo (estilo navegador Web), que el texto se vaya autocompletando automáticamente dentro del control o ambas cosas.

La propiedad AutoCompleteSource sirve para indicar de dónde se sacarán las sugerencias de rellenado automático. Pueden obtenerse del sistema de archivos (como en la figura), de la lista de URLs recientes, de la lista de archivos recientes, de estas dos últimas a la vez, de las URLs y el sistema de archivos al mismo tiempo, o en el caso de los combos, de los elementos que éste contiene.

En esta figura, por ejemplo, se ve el autorellenado a medida que escribimos una ruta en el disco, con las propiedades que acabamos de ver:

Lo más intresante, quizá, sea la posiblidad de rellenarlo con los valores que nosotros consideremos. Para conseguirlo debemos escoger el valor CustomSource para la propiedad AutoCompleteSource. Ahora basta con ajustar la propiedad AutoCompleteCustomSource que es una colección de cadenas de texto de tipo AutoCompleteStringCollection. Para meter nuestros propios elementos podemos escribir:

        private void Form3_Load(object sender, EventArgs e)
        {
            AutoCompleteStringCollection s = new AutoCompleteStringCollection();
            s.Add("Antonio");
            s.Add("Amaya");
            s.Add("Azuzena");
//... rellenar con más elementos o sacarlos de una BD u otro lugar... this.textBox1.AutoCompleteCustomSource = s; }

Con esto conseguiremos que se sugieran nuestros propios elementos. Podemos rellenarlos manualmente en tiempo de diseño con el editor de esta propiedad que ofrece el inspector de propiedades de Visual Studio 2005.

José Manuel Alarcón
Banner

Comentarios (3) -

Hola Juan:

Gracias por el ejemplo, seguro que le puede interesar a más gente.

Saludos

JM

Responder

compa y si quiero agregar mas datos al AutoCompleteStringCollection

pero ya ejecutado el programa osea desde una ventana cualkiera,

necesito hacer eso y no me da
esto es lo q hago despues de agregar el dato a la base de datos y traer los datos nuevos... no me agrega el dato ingresado desde un windowsform...

//Llamo al controlador para q consulte a la base de datos y me devulve un ArrayList de datos
arraydatos = controladorlocal.Consultar(criterio, false);
            
            foreach (DatasetLocales datos in arraydatos)
            {
                coleccion.Add(datos.Nombre);                
            }
            this.txtLocal.AutoCompleteCustomSource = coleccion;

Responder

anRoswell

Resuelto...

Llamar al metodo debajo de la line de codigo q llamas a la venta

[email protected]

Responder

Agregar comentario