Para este sencillo ejemplo necesitamos un listview y un simple botón. Es muy importante ir a las propiedades del listview y seleccionar la propiedad view a detalles, para que el listview nos aparezca en forma de lista.
La idea de este ejemplo es hacer un sencillo mecanismo de búsqueda en el listview que permita encontrar un item dentro del listview, o lo que es lo mismo, buscar un elemento en la lista de datos que tenemos. ¿Y como lo hacemos? Muy sencillo, utilizando el método FindItemWithText que nos proporciona Visual Basic .Net.
Además, este método nos permite buscar por los comienzos de la cadena, de manera que si no escribes la palabra completa, la búsqueda se situará en el primer elemento que la cumpla. Veamos el código:
La idea de este ejemplo es hacer un sencillo mecanismo de búsqueda en el listview que permita encontrar un item dentro del listview, o lo que es lo mismo, buscar un elemento en la lista de datos que tenemos. ¿Y como lo hacemos? Muy sencillo, utilizando el método FindItemWithText que nos proporciona Visual Basic .Net.
Además, este método nos permite buscar por los comienzos de la cadena, de manera que si no escribes la palabra completa, la búsqueda se situará en el primer elemento que la cumpla. Veamos el código:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim item As ListViewItem
'Inicializamos el listview
ListView1.Items.Clear()
ListView1.Columns.Clear()
ListView1.Columns.Add("Animal", "", 400)
'Cargamos algunos elementos
item = New ListViewItem
item.Text = "Perro"
ListView1.Items.Add(item)
item = New ListViewItem
item.Text = "Avestruz"
ListView1.Items.Add(item)
item = New ListViewItem
item.Text = "Loro"
ListView1.Items.Add(item)
item = New ListViewItem
item.Text = "Canario"
ListView1.Items.Add(item)
item = New ListViewItem
item.Text = "Gato"
ListView1.Items.Add(item)
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim itmx As ListViewItem
itmx = ListView1.FindItemWithText("Canario")
If Not itmx Is Nothing Then
itmx.Selected = True
itmx.ForeColor = Color.Red
itmx.EnsureVisible()
End If
End Sub
End Class
Como ves, el ejemplo es muy simple, A FindItemWithText le tienes que pasar el texto que quieres buscar y el elemento que cumpla las condiciones se pondrá en rojo y el listview se moverá hasta el (de eso se encarga el EnsureVisible).
Por último, decirte que este método es tremendamente rápido, y consigue buscar información mucho más velozmente que si la búsqueda la haces con un bucle while. Para ello, puedes hacer la prueba cargando un un listview miles de items.
Por último, decirte que este método es tremendamente rápido, y consigue buscar información mucho más velozmente que si la búsqueda la haces con un bucle while. Para ello, puedes hacer la prueba cargando un un listview miles de items.
3 comentarios:
muchas gracias por la ayuda me ha serviso de mucho ayudas como estas son las que hacen que principiantes como nosotros aprendamos mucho mas
muchisimas gracias por este aporte me ayudo de mucho
Gracias por este aporte, a pesar de loa años transcurridos sigue siendo muy útil.
Publicar un comentario