Bueno esta vez les traigo la manera de implementar el famoso autocomplete en los textbox y comobobox.
Esto sirve para facilitar el uso de nuestras aplicaciones a los usuarios y a la vez darle mas vistosidad.
Para este ejemplo cree una pequeña base de datos llamada Eurocopa(aprovechando que ya se acerca la euro xD), la base de datos solo tiene una tabla llamada países y con 2 campos id y país.
El diseño de la aplicación tambien sera algo sencillo solo tendrá un textbox y un combobox.
Ahora lo que aremos es agregar una nueva clase a nuestro proyecto en mi caso le llamare AutoCompleClass.cs y lo primero que aremos es agregar los siguientes espacios de nombres que necesitaremos.
Ahora lo que aremos es hacer la clase publica y estática y agregaremos 2 métodos que usaremos.
El primer método llamado Datos se usa para cargar los datos de nuestra base de datos y el método Autocomplete es el que servirá para cargar los datos del autocomplete, los 2 métodos son sencillos de comprender y lleva comentada las partes mas importantes.
Ahora lo que aremos es crear el evento load de nuestro formulario y tendrá el siguiente código.
El primer bloque sirve para el autocomplete del textbox, que se hace con el uso de 3 propiedades AutoCompleteCustomSource que es la propiedad que obtiene la colección de datos que servirán para el autocomplete, AutoCompleteMode indica el modo de autocomplete y AutoCompleteSource indica de dónde se sacarán las sugerencias de rellenado automático.
El segundo y tercer bloque es para el autocomplete del combobox que a diferencia del textbox este necesita de 2 listas una para cargar los datos normalmente con el DataSource y la otra para el autocomplete.
Pueden descargar el proyecto desde mi blog.
Descargar Proyecto
También los invito a que se registren en un foro de programación ahí muy frecuentemente comparto códigos en diferentes lenguajes tambien pueden dejar sus preguntas que con gusto contestamos.
http://codemania.net/
Para estar enterados de mis últimos artículos siganme en blogger.
Saludos desde El Salvador
Esto sirve para facilitar el uso de nuestras aplicaciones a los usuarios y a la vez darle mas vistosidad.
Para este ejemplo cree una pequeña base de datos llamada Eurocopa(aprovechando que ya se acerca la euro xD), la base de datos solo tiene una tabla llamada países y con 2 campos id y país.

El diseño de la aplicación tambien sera algo sencillo solo tendrá un textbox y un combobox.

Ahora lo que aremos es agregar una nueva clase a nuestro proyecto en mi caso le llamare AutoCompleClass.cs y lo primero que aremos es agregar los siguientes espacios de nombres que necesitaremos.
using System.Data.SqlClient;
using System.Configuration;
using System.Windows.Forms;
Ahora lo que aremos es hacer la clase publica y estática y agregaremos 2 métodos que usaremos.
public static class AutoCompleClass
{
//metodo para cargar los datos de la bd
public static DataTable Datos()
{
DataTable dt = new DataTable();
SqlConnection conexion = new SqlConnection(ConfigurationManager.ConnectionStrings["default"].ToString());//cadena conexion
string consulta = "SELECT * FROM PAISES"; //consulta a la tabla paises
SqlCommand comando = new SqlCommand(consulta,conexion);
SqlDataAdapter adap = new SqlDataAdapter(comando);
adap.Fill(dt);
return dt;
}
//metodo para cargar la coleccion de datos para el autocomplete
public static AutoCompleteStringCollection Autocomplete()
{
DataTable dt = Datos();
AutoCompleteStringCollection coleccion = new AutoCompleteStringCollection();
//recorrer y cargar los items para el autocompletado
foreach (DataRow row in dt.Rows)
{
coleccion.Add(Convert.ToString(row["pais"]));
}
return coleccion;
}
}
El primer método llamado Datos se usa para cargar los datos de nuestra base de datos y el método Autocomplete es el que servirá para cargar los datos del autocomplete, los 2 métodos son sencillos de comprender y lleva comentada las partes mas importantes.
Ahora lo que aremos es crear el evento load de nuestro formulario y tendrá el siguiente código.
private void Form1_Load(object sender, EventArgs e)
{
//cargar los datos para el autocomplete del textbox
textBox1.AutoCompleteCustomSource = AutoCompleClass.Autocomplete();
textBox1.AutoCompleteMode = AutoCompleteMode.Suggest;
textBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;
// Cargo los datos que tendra el combobox
comboBox1.DataSource = AutoCompleClass.Datos();
comboBox1.DisplayMember = "pais";
comboBox1.ValueMember = "id";
// cargo la lista de items para el autocomplete dle combobox
comboBox1.AutoCompleteCustomSource = AutoCompleClass.Autocomplete();
comboBox1.AutoCompleteMode = AutoCompleteMode.Suggest;
comboBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;
}
El primer bloque sirve para el autocomplete del textbox, que se hace con el uso de 3 propiedades AutoCompleteCustomSource que es la propiedad que obtiene la colección de datos que servirán para el autocomplete, AutoCompleteMode indica el modo de autocomplete y AutoCompleteSource indica de dónde se sacarán las sugerencias de rellenado automático.
El segundo y tercer bloque es para el autocomplete del combobox que a diferencia del textbox este necesita de 2 listas una para cargar los datos normalmente con el DataSource y la otra para el autocomplete.
Capturas


Pueden descargar el proyecto desde mi blog.
Descargar Proyecto
También los invito a que se registren en un foro de programación ahí muy frecuentemente comparto códigos en diferentes lenguajes tambien pueden dejar sus preguntas que con gusto contestamos.
http://codemania.net/
Para estar enterados de mis últimos artículos siganme en blogger.
Saludos desde El Salvador


