Visual Basic.NET - DUDA CON LISTBOX

 
Vista:

DUDA CON LISTBOX

Publicado por Roberto (12 intervenciones) el 09/02/2005 14:44:35
Estoy haciendo un proyecto en el cual en un LISTBOX cargo ciertos números de facturas, las cuales voy a hacer una multiple selección para incluirlos en un recibo, mi codigo es el siguiente:

Dim x As Integer

For x = 0 To ListaFacturas.Items.Count - 1
If ListaFacturas.GetSelected(x) = True Then
ListaFacturas.SelectedIndex = ListaFacturas.GetItemText(x)
MsgBox(ListaFacturas.SelectedValue)
End If
Next

El problema es que dentro del FOR siempre me dá el INDEX del primer seleccionado y lo repite para todos igual, como si la propiedad SelectedIndex fuera de solo lectura, donde está mi error ?

Simplemtente lo que quiero es obtener el Valor de los elementos seleccionados para después agregarlos a una tabla.

1000 Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:DUDA CON LISTBOX

Publicado por Edgar (1501 intervenciones) el 09/02/2005 19:11:31
Hola

Usa ListBox1.SelectedIndices, es la colección de indices seleccionados

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:DUDA CON LISTBOX

Publicado por Roberto (12 intervenciones) el 10/02/2005 13:36:37
Probé con SelectedIndices, pero me hace el mismo efecto, tienes algun ejemplo ?

NUEVO CODIGO:

For x = 0 To ListaFacturas.SelectedIndices.Count - 1
ListaFacturas.SelectedItem = ListaFacturas.SelectedIndices(x)
MsgBox(ListaFacturas.SelectedValue)
Next

1000 Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:DUDA CON LISTBOX

Publicado por Edgar (1501 intervenciones) el 10/02/2005 14:09:54
Hola

El problema es que el SelectedValue solo te da el ultimo valor seleccionado.. escribe

For x = 0 To ListaFacturas.SelectedIndices.Count - 1
MsgBox(ListaFacturas.Item( ListaFacturas.SelectedIndices(x) )
Next

No hagas ListaFacturas.SelectedItem = ListaFacturas.SelectedIndices(x)

porque esto afecta los indices seleccionados y por lo tanto, el arreglo de selectedindices.. creo que si depuras el codigo que mostraste paso a paso solo iterará una vez

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:DUDA CON LISTBOX

Publicado por Roberto (12 intervenciones) el 10/02/2005 15:36:44
Me estoy encerrando en una pavada pero sigue sin funcionarme:

NUEVO CODIGO:

For x = 0 To ListaFacturas.SelectedIndices.Count - 1
MsgBox(ListaFacturas.Items.Item(ListaFacturas.SelectedIndices(x)))
Next

Ahora me patea en el Msgbox, me dice "Que el Prompt no se puede covertir al tipo String", este codigo que me pasaste que devuelve exactamente ? Un elemento de la lista pero de tipo Item ???

Lo mio es simple pero parece complicado, quiero tomar los items que seleccione en el LISTBOX y luego obtener el SelectedValue de cada uno.

1000 Gracias y perdon por la perdida de tiempo con esta chotada (que me tiene trancado)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:DUDA CON LISTBOX

Publicado por Edgar (1501 intervenciones) el 10/02/2005 15:56:43
Hola

Perdon, habia obviado que el Items devuelve un objeto, debes convertirlo a string usando el metodo ToString()

listbox.Items.Item( indice ).ToString()

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:DUDA CON LISTBOX

Publicado por Roberto (12 intervenciones) el 10/02/2005 16:34:02
SOLO TENGO HABILITADO EL METODO GetType.

Gracias, Rto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:DUDA CON LISTBOX

Publicado por Edgar (1501 intervenciones) el 10/02/2005 16:43:57
Hola

Intenta entonces con el Convert.ToString() o con el ctype para convertir el objeto a string

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:DUDA CON LISTBOX

Publicado por Roberto (12 intervenciones) el 10/02/2005 16:52:30
Bueno tampoco funcionó, pero no funcionó porque lo que está devolviendo es un valor tipo DataRowView.

Entonces Cree la variabla FilaFactura volqué ese código en la variable y luego llame al campo de esa fila donde esta el valor que me interesa y listo ! FUNCIONO !!!!!!!

Quedó algo así:

Dim FilaFactura As DataRowView

For x = 0 To ListaFacturas.SelectedIndices.Count - 1
FilaFactura = ListaFacturas.Items.Item(ListaFacturas.SelectedIndices(x))
MsgBox(FilaFactura("ID_Factura"))
Next

Nuevamente gracias por la ayuda, Rto.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar