Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Eleкtro en 26 Diciembre 2012, 16:14 pm



Título: [SOLUCIONADO] Problema con multi-selección en listview
Publicado por: Eleкtro en 26 Diciembre 2012, 16:14 pm
El problema es que selecciono varias líneas, abro un menú contextual, hago click en la opción deseada pero el contenido de la variable "FileInformation" siempre es el mismo valor, si selecciono 5 líneas pues el valor es siempre el de la primera línea...
¿Estoy usando mal el índice?

EDITO: se me olvidaba comentar que se trata de un listview con 2 columnas y yo intento mostrar el item de la segunda columna. La opción de seleccionar la "row" entera está activada.

Código
  1.    Private Sub NewMenu_ItemClicked(sender As Object, e As ToolStripItemClickedEventArgs) Handles NewMenu.ItemClicked
  2.        Dim FileInformation = Nothing
  3.        If e.ClickedItem.Name = "OpenDir" Then
  4.            For Each Entry In ListView1.SelectedItems()
  5.                FileInformation = My.Computer.FileSystem.GetFileInfo(ListView1.SelectedItems(0).SubItems(1).Text)
  6.                MsgBox("explorer.exe" & " /select," & FileInformation.DirectoryName & "\" & FileInformation.Name)
  7.                'Process.Start("explorer.exe", " /select," & FileInformation.DirectoryName & "\" & FileInformation.Name)
  8.                FileInformation = Nothing
  9.            Next
  10.        End If


En cambio esto me funciona perféctamente:

Código
  1.        If e.ClickedItem.Name = "DeleteEntry" Then
  2.            For Each Entry In ListView1.SelectedItems()
  3.                ListView1.Items.Remove(ListView1.SelectedItems(0))
  4.            Next
  5.        End If


Título: Re: Problema con multi-selección en listview
Publicado por: Eleкtro en 27 Diciembre 2012, 10:19 am
kawen, ¿Nadie tiene una respuesta para este problema? :(


Título: Re: Problema con multi-selección en listview
Publicado por: HdM en 27 Diciembre 2012, 11:23 am
Hola.

Citar
¿Estoy usando mal el índice?

Código
  1. FileInformation = My.Computer.FileSystem.GetFileInfo(ListView1.SelectedItems(0).SubItems(1).Text

Efectivamente, siempre estás seleccionando el 1er item (SelectedItems(0)).

Prueba sustituyendo esa línea por:

Código
  1. FileInformation = My.Computer.FileSystem.GetFileInfo(ListView1.Items(entry.Index).SubItems(1).Text)

Un saludo.


Título: Re: [SOLUCIONADO] Problema con multi-selección en listview
Publicado por: Eleкtro en 27 Diciembre 2012, 17:29 pm
Gracias HdM  ;D.