Mostrando entradas con la etiqueta listbox. Mostrar todas las entradas
Mostrando entradas con la etiqueta listbox. Mostrar todas las entradas

miércoles, 5 de agosto de 2009

Eliminar elementos de un ListBox

Este sería el código a usar para eliminar el elemento que está seleccionado:Private Sub ListBox1_KeyDown(ByVal sender As Object, ByVal e_
As System.Windows.Forms.KeyEventArgs) Handles ListBox1.KeyDown
If e.KeyCode = Keys.Delete Then
' Borrar las palabras seleccionadas del listbox
Dim i As Integer
With ListBox1
For i = .SelectedItems.Count - 1 To 0 Step -1
.Items.Remove(.SelectedItems.Item(i))
Next
End With
End If
End Sub

La parte del If e.KeyCode = Keys.Delete Then En este caso, queremos
saber si el valor de e.KeyCode, que es la tecla que has pulsado, es igual a
Keys.Delete, éste último valor es un valor "predefinido" que
representa a la tecla suprimir.

Por tanto, si la tecla que hemos pulsado es igual a la tecla suprimir, entonces
hacer lo que viene a continuación...


Dim i As Integer esto le indica al VB
que vamos a usar un número y que ese número lo guarde en la variable i, de esto también tendrás
ocasión de enterarte mejor, por ahora dejémoslo así.


With ListBox1 el With se utiliza para
simplificarnos las cosas y lo que viene a significar es que donde se tendría
que usar el objeto ListBox1, se ponga un punto... más o menos... ahora veremos
cómo se escribiría el código sin usar el With ListBox1.


For i = .SelectedItems.Count - 1 To 0 Step -1 con esto le estamos indicando que use la variable i para ir
guardando los valores que resulten de contar desde el número de elementos que
hay seleccionados hasta cero. El Step -1 se usa para contar hacia atrás, (de
mayor a menor), pero eso, al igual que el For, también lo veremos más adelante.

SelectedItems es una colección en la cual están los elementos que hay
seleccionados en el ListBox.

¿Recuerdas la colección Items? Pues en este caso, SelectedItems son los
elementos seleccionados y para que lo sepas, todas las colecciones suelen tener
un método Count que nos dice el número de elementos que hay en ellas.


.Items.Remove(.SelectedItems.Item(i))
Esto es parecido a lo visto antes, es decir, elimina el elemento que está
seleccionado y que ocupa la posición i dentro de la colección de
elementos seleccionados.

Esto también lo podríamos haber escrito de esta otra forma:

.Items.Remove(.SelectedItems(i)) que para el caso es lo mismo.

En su momento veremos porqué.

Por ahora quédate con la copla de que Item es la propiedad o método
predeterminado de la colección SelectedItems.


Next indica que continúe el bucle o la
cuenta que estamos llevando con la variable i.

De esta forma, al haber usado el Step -1, lo que hacemos es contar hacia atrás
y si por ejemplo i valía 3, al llegar aquí, valdrá 2, es decir restamos 1: el
valor indicado en Step


End With indica hasta dónde llega el
tema ese del With ListBox1


End If le dice que hasta aquí llega la
comprobación que hicimos de si la tecla pulsada era la de suprimir.

miércoles, 1 de julio de 2009

Guardar datos en un ListBox

Como anteriormente ya deje un post para ver como se guardan datos en un ComboBox; ahora veremos como guardar datos en un listbox.

Primeramente veremos las propiedades mas comunes que utilizaremos y son:


  • DataSource: nos permite guardas valores de un DataTable

  • DisplayMenber: nos permite guardar un capo al igual que el combobox

  • ValueMenber: nos permite guardar otro campo.


Aplicacion: Mostrar los productos por categoria en un DataGridView para eso guarderemos los productos en un listbox y al hacer click en uno de ellos mostrarlos.

Nota: Utilizaremos una conexion a SqlClient


'importamos los elementos
Imports System.data
Imports System.Data.SqlClient 'Proveedor de Sql Server

Public Class Form1
'Paso 1: Creando la cadena de conexion
Dim cad as tring = "Server=(local);IntegratedSecurity=SSPI;Database=Neptuno"
Dim cn As New SqlConnection(cad)

'evento load del form
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Paso 2: Listando los datos en el ListBox
Dim strsql As String = "Select idproducto,nombreproducto From productos"
Dim da As New SqlDataAdapter(strsql, cn)
'creando una tabla en memoria
Dim tbl As New DataTable
'copiando los datos del DataAdapter al DataTable
da.Fill(tbl)
'Mostrando los datos en el ListBox
ListBox1.DataSource = tbl
ListBox1.DisplayMember = "nombreproducto"
ListBox1.ValueMember = "idproducto"
LBLCANTIDAD.Text = ListBox1.Items.Count
End Sub
End Class