|
Página 1 de 2
|
Pasar Items De Un Listbox A Otro
Autor |
Mensaje |
destroyer
Aprendiz
Registrado: Noviembre 2009
Mensajes: 65
Edad: 54 Ubicación:
|
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
|
#1 Viernes, 20 Agosto 2010, 23:56 |
|
|
willicab
Aprendiz
Registrado: Septiembre 2009
Mensajes: 64
Edad: 39 Ubicación: Caracas, Distrito Capital
|
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
última edición por willicab el Lunes, 30 Agosto 2010, 05:17; editado 1 vez
|
#2 Lunes, 30 Agosto 2010, 05:14 |
|
|
rescobar
Usuario
Registrado: Junio 2017
Mensajes: 42
Edad: 50 Ubicación: Espejo ,Cordoba
|
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.
|
#3 Lunes, 02 Octobre 2017, 15:28 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
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"
|
#4 Lunes, 02 Octobre 2017, 18:25 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
Re: Pasar Items De Un Listbox A Otro
Buenas!
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
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: |
37 veces |
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: |
37 veces |
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: |
37 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
|
#5 Lunes, 02 Octobre 2017, 19:33 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
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"
|
#6 Lunes, 02 Octobre 2017, 19:37 |
|
|
vuott
Analista Programador
Registrado: Agosto 2013
Mensajes: 2086
Edad: 60 Ubicación:
|
Re: Pasar Items De Un Listbox A Otro
Consul, olvidaste Alice !
|
#7 Lunes, 02 Octobre 2017, 20:34 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
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:
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"
|
#8 Lunes, 02 Octobre 2017, 21:31 |
|
|
Shell
Analista Programador
Registrado: Marzo 2010
Mensajes: 5278
Edad: 53 Ubicación: Al otro lado de la pantalla
|
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:
Pues subo la nueva versión. ¿ Debo hacerlo aquí ?.
Saludos
Descripción: |
Actualización |
Descargar |
Nombre del archivo: |
PasarItemDeUnaListaAOtra2.tar.gz |
Tamaño: |
14.53 KB |
Descargado: |
34 veces |
Descripción: |
Actualización |
Descargar |
Nombre del archivo: |
PasarItemDeUnaListaAOtra2.tar.gz |
Tamaño: |
14.53 KB |
Descargado: |
34 veces |
Descripción: |
Actualización |
Descargar |
Nombre del archivo: |
PasarItemDeUnaListaAOtra2.tar.gz |
Tamaño: |
14.53 KB |
Descargado: |
34 veces |
=================== Gambas Básico
"No es un bug, es una característica no documentada"
|
#9 Martes, 03 Octobre 2017, 00:01 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
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
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:
Adjunto ejemplo
Descripción: |
|
Descargar |
Nombre del archivo: |
PasarItemDeUnaListaAOtra2-0.0.1.tar.gz |
Tamaño: |
12.96 KB |
Descargado: |
30 veces |
Descripción: |
|
Descargar |
Nombre del archivo: |
PasarItemDeUnaListaAOtra2-0.0.1.tar.gz |
Tamaño: |
12.96 KB |
Descargado: |
30 veces |
Descripción: |
|
Descargar |
Nombre del archivo: |
PasarItemDeUnaListaAOtra2-0.0.1.tar.gz |
Tamaño: |
12.96 KB |
Descargado: |
30 veces |
=================== No podemos regresar
última edición por shordi el Martes, 03 Octobre 2017, 05:47; editado 1 vez
|
#10 Martes, 03 Octobre 2017, 05:41 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 1 de 2
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado Usuarios registrados conectados: Ninguno
|
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
|
|
|
|
|