Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 2
Ir a la página 1, 2  Siguiente
 
Pasar Items De Un Listbox A Otro
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Pasar Items De Un Listbox A Otro 
 
me gustaria saber como pasar datos de un listbox a otro borrando los datos pasados. con el siguiente codigo siempre me da error, supongo que es porque al borrar los datos el listbox.count ya no es igual

  FOR a = 0 TO LBX.Count - 1
          IF LBX[a].Selected THEN
            LBX2.Add(LBX[a].Text)
             LBX.Remove(a)
          ENDIF  
   NEXT
 



 
destroyer - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Pasar Items De Un Listbox A Otro 
 
En realidad es mucho más facil, con solo dos lineas de código puedes hacerlo

  
LBX2.Add(LBX[LBX.Index].Text)
LBX.Remove(LBX.Index)
 


Claro, hay que verificar que ralmente haya algun elemento de la lista seleccionado, por ejemplo puedes hacer

  
IF LBX.Index >= 0 THEN
    LBX2.Add(LBX[LBX.Index].Text)
    LBX.Remove(LBX.Index)
ENDIF
 

 




===================
William Cabrera
Mi Blog
Mi Twitter
IRC de Gambas en Español
 
última edición por willicab el Lunes, 30 Agosto 2010, 05:17; editado 1 vez 
willicab - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Pasar Items De Un Listbox A Otro 
 
Buenas.

Este mismo error me ha surgido y la solucion que le he dado es la siguiente.
Creo dos listas y en una añado los seleccionados y el la otra lista los no seleccionados.
Despues añado los seleccionados al otro listbox, y los borro el listbox y añado los seleccionados. No es muy elegante pero es efectivo.

Pongo codigo.

Citar:


Dim Contador As Integer
  Dim i As Integer
  Dim Lista_Seleccionados As New String[]
  Dim Lista_NoSeleccionados As New String[]
  Contador = Listobox1.Count
  For i = 0 To Contador - 1
    If Listbox1[i].Selected Then
      Lista_Seleccionados.Add(Listbox1[i].Text)
    Else
      Lista_NoSeleccionados.Add(Listbox1[i].Text)
    
    Endif
  Next
  ' Añádimos a Listbox2 los seleccionados
  contador = Lista_Seleccionados.Count
  For i = 0 To contador - 1
    Listbox2.Add(Lista_Seleccionados[i])
  Next
' Borramos Listbox1 y agregamos los que no hemos seleccionado.
    contador = Lista_NoSeleccionados.Count
    Listbox1.Clear
    For i = 0 To contador - 1
    Llisbox1.Add(Lista_NoSeleccionados[i])
  Next
' Deseleccionamos todos ya que se quedan seleccionados
    Listbox1.UnselectAll


Por si alguien lo necesita.

Saludos.
 



 
rescobar - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Pasar Items De Un Listbox A Otro 
 
Esto me ha dado una idea..jijiji..
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Pasar Items De Un Listbox A Otro 
 
Buenas!



 pasaritemdeunalistaaotrayborar

Private mujeres_hermosas As New String[]

Public Sub Form_Open()
  
  'Llenando la lista de mujeres hermosas
  
  mujeres_hermosas = ["Alessandra Ambrossio",
    "Megan Fox",
    "Emma Watson",
    "Selene Gomez",
    "Ashe Greene",
    "Linday Lohan",
    "Jessica Alba",
    "Sofia Vergara",
    "Scarlett Johansson",
    "Hilary Duff",
    "Adriana Lima",
    "Angelina Jolie",
    "Kristen Stewart",
    "Taylor Swift",
    "Keely Hazell",
    "Elisha Cutbert",
    "Oddette Yustman",
    "Olivia Wilde",
    "Bar Rafaeli",
    "Avril Lavigne",
    "Katy Perry",
    "Miranda Kerr",
    "Candice Swanepoel",
    "Britney Spears",
    "Miley Cyrus",
    "Luisana Lopilato",
    "Belinda",
    "Jessica Simpson",
    "Keira Knightley", ""
      "Kirsten Dunst"]
  
  LstBox1.List = mujeres_hermosas
  
  'Vamos por orden que son demasiadas
  LstBox1.Sorted = True
  LstBox2.Sorted = True
  
  'Selección múltiple, cuidado con los infartos!!!
  
  LstBox1.Mode = Select.Multiple
  LstBox2.Mode = Select.Multiple
  
End

Public Sub btnADerecha_Click()
  
  Dim i As Integer
  Dim indicechicaencontrada As Integer
  Dim seleccionadas As New String[]
  
  'Añadimos los nombres de las chicas seleccionadas
  For i = 0 To LstBox1.List.Max
    If LstBox1[i].Selected Then
      seleccionadas.Add(LstBox1.List[i])    
    Endif
  Next
  
  'Pasamos los nombres de las chicas seleccionadas al ListBox2
  For i = 0 To seleccionadas.Max
    LstBox2.Add(seleccionadas[i])
  Next
  
  'Y eliminamos las chicas de la lista inicial
  For i = 0 To seleccionadas.Max
    indicechicaencontrada = LstBox1.Find(seleccionadas[i])
    If indicechicaencontrada <> -1 Then LstBox1.Remove(indicechicaencontrada)    
  Next
  
End

Public Sub btnAIzquierda_Click()
  
  Dim i As Integer
  Dim indicechicaencontrada As Integer
  Dim seleccionadas As New String[]
  
  'Añadimos los nombres de las chicas y su indice a los arrays
  For i = 0 To LstBox2.List.Max
    If LstBox2[i].Selected Then
      seleccionadas.Add(LstBox2.List[i])    
    Endif
  Next
  
  'Pasamos los nombres de las chicas seleccionadas al ListBox2
  For i = 0 To seleccionadas.Max
    LstBox1.Add(seleccionadas[i])
  Next
  
  'Y eliminamos las chicas de la lista inicial
  For i = 0 To seleccionadas.Max
    indicechicaencontrada = LstBox2.Find(seleccionadas[i])
    If indicechicaencontrada <> -1 Then LstBox2.Remove(indicechicaencontrada)    
  Next
  
End

Public Sub btnSalir_Click()

  Me.Close

End
 


Lo próximo...incluir las fotos de las chicas!!.  

Programación  = Producción!

Saludos

PasarItemDeUnaListaAOtra.tar.gz
Descripción: Como pasar elementos de una lista a otra y borrar los elementos de la lista origen 
Descargar
Nombre del archivo: PasarItemDeUnaListaAOtra.tar.gz
Tamaño: 14.17 KB
Descargado: 36 veces
PasarItemDeUnaListaAOtra.tar.gz
Descripción: Como pasar elementos de una lista a otra y borrar los elementos de la lista origen 
Descargar
Nombre del archivo: PasarItemDeUnaListaAOtra.tar.gz
Tamaño: 14.17 KB
Descargado: 36 veces
PasarItemDeUnaListaAOtra.tar.gz
Descripción: Como pasar elementos de una lista a otra y borrar los elementos de la lista origen 
Descargar
Nombre del archivo: PasarItemDeUnaListaAOtra.tar.gz
Tamaño: 14.17 KB
Descargado: 36 veces

 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Lunes, 02 Octobre 2017, 19:34; editado 1 vez 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Pasar Items De Un Listbox A Otro 
 
Como es lógico, se podría usar una función pasando la lista y evitando repetición de código, creo.
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Pasar Items De Un Listbox A Otro 
 
Shell escribió: [Ver mensaje]
Private mujeres_hermosas As New String[]

Public Sub Form_Open()
  
  'Llenando la lista de mujeres hermosas
  
  mujeres_hermosas =



Consul, hammer olvidaste Alice !    

1206998
 



 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Pasar Items De Un Listbox A Otro 
 
Vuott:

Citar:

Consul, hammer olvidaste Alice !


Peccata minuta.  
Es que la lista era bien larga. Habrá que añadir una caja de texto para que se pueda añadir items manualmente a la primera o segunda lista.  
Pues si, Alice es tan o más guapa que algunas chicas de la lista.

He añadido una función para no repetir tanto código:


Public Function Reorganizar(ListBoxOrigenAs ListBox) As String[]
  
  Dim i As Integer
  Dim indicechicaencontrada As Integer
  Dim seleccionadas As New String[]
  Dim listanombre As New String[]
  
  'Añadimos los nombres de las chicas
  For i = 0 To LIstBoxOrigen.List.Max
    If LIstBoxOrigen[i].Selected Then
      seleccionadas.Add(LIstBoxOrigen.List[i])    
    Endif
  Next
    
  For i = 0 To seleccionadas.Max    
    listanombre.Add(seleccionadas[i])
  Next
  
  'Y eliminamos las chicas de la lista inicial
  For i = 0 To seleccionadas.Max
    indicechicaencontrada = LIstBoxOrigen.Find(seleccionadas[i])
    If indicechicaencontrada <> -1 Then LIstBoxOrigen.Remove(indicechicaencontrada)    
  Next
  
  Return seleccionadas
  
End
 


Ahora habría que optimizar el código de los botones , creando un grupo.
Cuando lo acabe lo subo del todo. A ver si puedo.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Pasar Items De Un Listbox A Otro 
 
Buenas!.

He creado un grupo para los botones. Pero hay algo que no acabo de entender.
Fijaros en el objeto unlistbox. Yo no lo he devuelo , en cambio las listas se actualizan
correctamente como si fuera tanto LstBox1 o LstBox2 un espejo de unlistbox.
Debe ser que el lugar que ocupa en la memoria es el mismo. Una copia.  

El código de los botones es este:

Public Sub Botones_Click()
  
  Dim listanombres As New String[]
  Dim i As Integer  
  Dim unlistbox As ListBox
  
  Select Case Last.tag      
    Case "Izquierda"
      listanombres = Reorganizar(LstBox1)    
      unlistbox = LstBox2
    Case "Derecha"
      listanombres = Reorganizar(LstBox2)    
      unlistbox = LstBox1
  End Select
  
  For i = 0 To listanombres.Max
    unlistbox.Add(listanombres[i])
  Next
  
End
 


Pues subo la nueva versión. ¿ Debo hacerlo aquí ?.  


Saludos

PasarItemDeUnaListaAOtra2.tar.gz
Descripción: Actualización 
Descargar
Nombre del archivo: PasarItemDeUnaListaAOtra2.tar.gz
Tamaño: 14.53 KB
Descargado: 33 veces
PasarItemDeUnaListaAOtra2.tar.gz
Descripción: Actualización 
Descargar
Nombre del archivo: PasarItemDeUnaListaAOtra2.tar.gz
Tamaño: 14.53 KB
Descargado: 33 veces
PasarItemDeUnaListaAOtra2.tar.gz
Descripción: Actualización 
Descargar
Nombre del archivo: PasarItemDeUnaListaAOtra2.tar.gz
Tamaño: 14.53 KB
Descargado: 33 veces

 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Pasar Items De Un Listbox A Otro 
 
Citar:
He creado un grupo para los botones. Pero hay algo que no acabo de entender.
Fijaros en el objeto unlistbox. Yo no lo he devuelo , en cambio las listas se actualizan
correctamente como si fuera tanto LstBox1 o LstBox2 un espejo de unlistbox.
Debe ser que el lugar que ocupa en la memoria es el mismo. Una copia

Los objetos se pasan por referencia, es decir, se pasa la dirección de memoria que ocupa, por tanto cuando haces

unlistbox = LstBox2

estás asignando a unlistbox la misma direccion que lstBox2, por ejemplo.

No entiendo ese uso del tag, por cierto. Si se trata de identificar el control, para eso tiene su nombre. Si se trata de clarificar el código llama "Izquierda" al botón...

Too much complex, Shell. O sea que demasiado lío.
Bastaba con éso:
Public Sub tbRight_Click()

  Dim n As Integer
  
  For n = 0 To ListBox1.Count - 1
    If ListBox1[n].selected Then
      ListBox2.Add(ListBox1.list[n])
      ListBox1.Remove(n)
      n -= 1
    Endif
  Next
  Wait

End

Public Sub tbLeft_Click()

  Dim n As Integer
  
  For n = 0 To ListBox2.Count - 1
    If ListBox2[n].selected Then
      ListBox1.Add(ListBox2.list[n])
      ListBox2.Remove(n)
      n -= 1
    Endif
  Next
  Wait

End

Adjunto ejemplo

PasarItemDeUnaListaAOtra2-0.0.1.tar.gz
Descripción:  
Descargar
Nombre del archivo: PasarItemDeUnaListaAOtra2-0.0.1.tar.gz
Tamaño: 12.96 KB
Descargado: 29 veces
PasarItemDeUnaListaAOtra2-0.0.1.tar.gz
Descripción:  
Descargar
Nombre del archivo: PasarItemDeUnaListaAOtra2-0.0.1.tar.gz
Tamaño: 12.96 KB
Descargado: 29 veces
PasarItemDeUnaListaAOtra2-0.0.1.tar.gz
Descripción:  
Descargar
Nombre del archivo: PasarItemDeUnaListaAOtra2-0.0.1.tar.gz
Tamaño: 12.96 KB
Descargado: 29 veces

 




===================
No podemos regresar
 
última edición por shordi el Martes, 03 Octobre 2017, 05:47; editado 1 vez 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Pasar Un String De Un Form A Otro. Marcelo General 5 Martes, 18 Octobre 2011, 16:04 Ver último mensaje
jsbsan
No hay nuevos mensajes Pasar Un Control De Un Formulario A Otro F... Shell General 8 Sabado, 04 Febrero 2017, 19:13 Ver último mensaje
Shell
No hay nuevos mensajes Items De Listbox Repetidos Torrealba2719 General 2 Sabado, 30 Septiembre 2017, 08:49 Ver último mensaje
Shell
No hay nuevos mensajes Visibilidad De Items En ComboBox calcena General 4 Miercoles, 09 Octobre 2019, 09:48 Ver último mensaje
tincho
 

Publicar nuevo tema  Responder al tema  Página 1 de 2
Ir a la página 1, 2  Siguiente

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron