elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Recorrer ListBox con ForEach y posicionarme
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Recorrer ListBox con ForEach y posicionarme  (Leído 8,283 veces)
|Miguel|

Desconectado Desconectado

Mensajes: 217



Ver Perfil
Recorrer ListBox con ForEach y posicionarme
« en: 17 Abril 2012, 17:09 pm »

Hola a todos, ¿qué tal?

Bueno, os cuento. Tengo un formulario que tiene una lista de clientes en una ListBox que contiene items de una clase mía que he llamado Cliente.

Tengo una función buscar que busca clientes repetidos para actualizar o insertar uno nuevo según el caso. Este es el framento de código:

Código
  1. Public Sub actualizar()
  2.        If validar() Then
  3.            Dim posicion As Integer = 0
  4.            Dim nombre As String = txtNombre.Text
  5.            Dim apellidos As String = txtApellidos.Text
  6.            Dim mandarInformacion As Boolean = chkMandarInformacion.CheckState
  7.            Dim analizarRiesgo As Boolean = chkAnalizarRiesgo.CheckState
  8.            Dim direccion As String = txtDireccion.Text
  9.            Dim codigoPostal As String = txtCodigoPostal.Text
  10.            Dim persona As Cliente = New Cliente(nombre, apellidos, mandarInformacion, analizarRiesgo, direccion, codigoPostal)
  11.  
  12.            If Not buscarCliente(persona, posicion) Then
  13.                lstListaDeClientes.Items.Add(persona)
  14.                lstListaDeClientes.SelectedIndex = lstListaDeClientes.Items.Count - 1
  15.            Else
  16.                lstListaDeClientes.Items.Item(posicion) = persona
  17.            End If
  18.        End If
  19.    End Sub
  20.  
  21.    Public Function buscarCliente(ByVal persona As Cliente, ByRef i As Integer) As Boolean
  22.        Dim ok As Boolean = False
  23.  
  24.        For Each cli As Cliente In lstListaDeClientes.Items
  25.            If persona.apellidos.Trim.Equals(cli.apellidos.Trim) AndAlso persona.nombre.Trim.Equals(cli.nombre.Trim) Then
  26.                ok = True
  27.                lstListaDeClientes.SelectedItem = cli
  28.                Exit For
  29.            End If
  30.            i += 1
  31.        Next
  32.  
  33.        'For i = 0 To lstListaDeClientes.Items.Count - 1
  34.        '    If lstListaDeClientes.Items.Count > 0 Then
  35.        '        lstListaDeClientes.SelectedIndex = i
  36.        '    End If
  37.        '    If persona.apellidos.Trim.Equals(lstListaDeClientes.Items.Item(i).apellidos.Trim) _
  38.        '            AndAlso persona.nombre.Trim.Equals(lstListaDeClientes.Items.Item(i).nombre.Trim) Then
  39.        '        ok = True
  40.        '        Exit For
  41.        '    End If
  42.        'Next
  43.        Return (ok)
  44.    End Function

pero al que manda se le ha puesto entre ceja y ceja 1º que use for each en lugar del for y después que me cargue la i... y no sé hacerlo sin ella...

¿ayuda? Gracias.


En línea

rembolso

Desconectado Desconectado

Mensajes: 163



Ver Perfil
Re: Recorrer ListBox con ForEach y posicionarme
« Respuesta #1 en: 17 Abril 2012, 23:57 pm »

mira  con el FOR EACH  estas recorriendo un Array de datos, yo te aconsegaria que uses arrays de datos   y utilices el listview para la visualización de ella.

 te dejo un ejemplo para que no estes tan perdido.

Código
  1. Dim Array() As String ,cadena As Variant 'modifique la variable,  variant y no a string
  2. ReDim Array(1) ' redimensiono 2 posiciones
  3.  
  4. Array(0) = "Rembolso"
  5. Array(1) = "I'm sexy and kanowit"
  6.  
  7. For Each cadena In Array
  8. MsgBox(cadena )
  9. Next
nota: estas en .net ?


« Última modificación: 18 Abril 2012, 00:03 am por rembolso » En línea

raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Recorrer ListBox con ForEach y posicionarme
« Respuesta #2 en: 18 Abril 2012, 04:34 am »

Che yo movi este tema a .net, ... o sera que el js me devolvio que se movio y no hizo nada :xD
En línea

kub0x
Enlightenment Seeker
Moderador
***
Desconectado Desconectado

Mensajes: 1.443


S3C M4NI4C


Ver Perfil
Re: Recorrer ListBox con ForEach y posicionarme
« Respuesta #3 en: 18 Abril 2012, 12:22 pm »

Es fácil.. recorres el listbox con un bucle for each que obtenga cada elemento de Items por cada iteracción...

Ejemplo:

Código
  1. Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
  2.        Try
  3.            For Each elemento As String In ListBox1.Items
  4.                If elemento.Contains("Elhacker.net") Then 'si el elemento del listbox contiene la variable que almacena el nombre del cliente...
  5.                    ListBox1.SelectedIndex = ListBox1.Items.IndexOf(elemento) 'nos posicionamos en éste
  6.                End If
  7.            Next
  8.        Catch ex As Exception
  9.        End Try
  10.    End Sub
  11.  

Saludos.
En línea

Viejos siempre viejos,
Ellos tienen el poder,
Y la juventud,
¡En el ataúd! Criaturas Al poder.

Visita mi perfil en ResearchGate

|Miguel|

Desconectado Desconectado

Mensajes: 217



Ver Perfil
Re: Recorrer ListBox con ForEach y posicionarme
« Respuesta #4 en: 18 Abril 2012, 19:11 pm »

Sí, estoy en .net. No había visto el subforo lo siento.

Bueno, gracias a todos. Me ha servido para hacer lo que me pedían, presentarlo al jefe y que me dijera que lo dejaba como estaba al principio... ¬¬

En fin, gracias.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines