Principales respuestas
Añadir/Obtener datos de columnas de ListView

Pregunta
-
Buen Día!!
Espero me puedan ayudar con 2 dudas.
PRIMERO: Tengo una aplicación en .Net con un ciclo "For Each" que lee un archivo txt y busca un dato especifico por medio de Delimitadores, para ello utilizo éste código:
Using tfp As New FileIO.TextFieldParser(Environment.ExpandEnvironmentVariables("%appdata%\txt\archivo1.txt")) tfp.Delimiters = New String() {"*", ":"} Dim valor As String = String.Empty While Not tfp.EndOfData Dim fields As String() = tfp.ReadFields() If (fields(0) = "nombre") Then valor = fields(1) 'AÑADIR "valor" AL ListView End If Dim fields2 As String() = tfp.ReadFields() If (fields2(0) = "version") Then valor = fields2(1) 'AÑADIR "valor" AL ListView Exit While End If End While End Using
Como verán obtiene el dato "nombre y version", todo ésto funciona bien, la cuestión es que necesito añadir estos valores a un ListView, de manera que se muestre el "nombre" en la columna 1 y la "version" en la columna 2.
Recordemos que es un ciclo For y por lo tanto abrirá varios archivo en cada vuelta, y quisiera que cada valor se añadiera en el siguiente renglón del ListView.
Mi segunda duda es:
Ya que tenga el ListView con todos los datos añadidos, ¿como puedo obtener el texto que se encuentra en la segunda columna de un renglón, o sea el dato "version" al seleccionar un item del ListView?
Yo lo intente con el evento SelectedIndexChanged del ListView pero no me funciono.
Espero que se entienda lo que traté de explicar, y gracias por su ayuda.
lunes, 17 de marzo de 2014 6:16
Respuestas
-
'listview 2 columnas vista detalles ListView1.Columns.Add("Nombre") ListView1.Columns.Add("Versión") ListView1.View = View.Details ListView1.FullRowSelect = True 'agrega los items Dim lvi As New ListViewItem While Not tfp.EndOfData Dim fields As String() = tfp.ReadFields() If (fields(0) = "nombre") Then valor = fields(1) lvi.Text = valor End If Dim fields2 As String() = tfp.ReadFields() If (fields2(0) = "version") Then valor = fields2(1) lvi.SubItems.Add(valor) Exit While End If End While ListView1.Items.Add(lvi) 'extraes la versión del item seleccionado Private Sub ListView1_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ListView1.SelectedIndexChanged If ListView1.SelectedItems.Count = 1 Then MessageBox.Show(ListView1.SelectedItems(0).SubItems(1).Text, "Versión") End If End Sub
- Editado Walter Miguel lunes, 17 de marzo de 2014 12:23
- Propuesto como respuesta Pablo Fébolo lunes, 17 de marzo de 2014 20:15
- Marcado como respuesta Heberon martes, 18 de marzo de 2014 17:36
lunes, 17 de marzo de 2014 12:20
Todas las respuestas
-
'listview 2 columnas vista detalles ListView1.Columns.Add("Nombre") ListView1.Columns.Add("Versión") ListView1.View = View.Details ListView1.FullRowSelect = True 'agrega los items Dim lvi As New ListViewItem While Not tfp.EndOfData Dim fields As String() = tfp.ReadFields() If (fields(0) = "nombre") Then valor = fields(1) lvi.Text = valor End If Dim fields2 As String() = tfp.ReadFields() If (fields2(0) = "version") Then valor = fields2(1) lvi.SubItems.Add(valor) Exit While End If End While ListView1.Items.Add(lvi) 'extraes la versión del item seleccionado Private Sub ListView1_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ListView1.SelectedIndexChanged If ListView1.SelectedItems.Count = 1 Then MessageBox.Show(ListView1.SelectedItems(0).SubItems(1).Text, "Versión") End If End Sub
- Editado Walter Miguel lunes, 17 de marzo de 2014 12:23
- Propuesto como respuesta Pablo Fébolo lunes, 17 de marzo de 2014 20:15
- Marcado como respuesta Heberon martes, 18 de marzo de 2014 17:36
lunes, 17 de marzo de 2014 12:20 -
Hola Walter Miguel.
He probado el ejemplo que mencionas y funciona justo como deseo.
Gracias por tu tiempo.
martes, 18 de marzo de 2014 17:35