Introducción
Muchas veces es necesario exponer al usuario herramientas de búsqueda que le faciliten la interacción con la aplicación que desarrollamos.
Una de estas herramientas es precisamente el AutoComplete, por el cual el usuario podrá ir visualizando los ítems existentes a medida que se escribe en un control.
TextBox AutoComplete
Hacer uso de las opciones de autocomplete de estos controles es bastante simple, solo hace falta especificar un par de propiedades, pero hay que tener en cuenta algunos puntos.
Estas propiedades son:
textBox1.AutoCompleteCustomSource = DataHelper.LoadAutoComplete(); textBox1.AutoCompleteMode = AutoCompleteMode.Suggest; textBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;
En el ejemplo se visualiza como asignar estas propiedades, pero debe prestarse atención a la propiedad “AutoCompleteCustomSource” esta es clave, pues contendrá la lista de ítems.
Esta propiedad es justamente uno de los puntos a tener en cuenta, ya que requiere cargar una lista de ítems que provenga de una colección del tipo “AutoCompleteStringCollection”
Es por ello que en el ejemplo se visualiza la generación de los datos que cargaran esta colección
public static AutoCompleteStringCollection LoadAutoComplete() { DataTable dt = LoadDataTable(); AutoCompleteStringCollection stringCol = new AutoCompleteStringCollection(); foreach (DataRow row in dt.Rows) { stringCol.Add(Convert.ToString(row["Nombre"])); } return stringCol; }
El código es bastante simple de entender, se obtiene los datos desde la db y como siguiente paso los recorre cargando la lista de ítems del autocomplete.
ComboBox AutoComplete
La utilización de las opciones de autocomplete de un control Combobox son idénticas a las de un TextBox, solo difiere en que el combo requiere cargar sus ítems previamente para la selección por parte del usuario.
O sea el combobox requiere dos listas para bindear
- una normal que se asignara al DataSource, y en donde se especificara tanto el valor a desplegar como el valor de la key
- una especial con la lista de descripciones para el autocomplete
// // Cargo los datos del combobox // comboBox1.DataSource = DataHelper.LoadDataTable(); comboBox1.DisplayMember = "Nombre"; comboBox1.ValueMember = "Id"; // // cargo la lista de items para el autocomplete // comboBox1.AutoCompleteCustomSource = DataHelper.LoadAutoComplete(); comboBox1.AutoCompleteMode = AutoCompleteMode.Suggest; comboBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;
Conclusión
El autocomplete es una excelente opción para ayudar al usuario en la interacción con la aplicación brindándole un fácil acceso mientras escribe la búsqueda.
[C#] |
[VB.NET] |