Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   .NET (http://www.forosdelweb.com/f29/)
-   -   Duda sobre ListView (http://www.forosdelweb.com/f29/duda-sobre-listview-573581/)

meraViglia 07/04/2008 19:05

Duda sobre ListView
 
Hola , ya les voy a mostrar

Private Sub ListView1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListView1.Click

Me.TextBox1.Text = Me.ListView1.SelectedItems(0).SubItems(1).Text


End Sub

con esta lineas saco los datos que selecciono con el mouse en un ListView y lo muestro en un textbox la duda es !!

¿Que metodo se usa para hacer lo mismo pero mientra va recorriendo el ListView con las flechitas para arriba y para abajo ? y si hay otra forma mejor de como hacerlo

gracias de ante manos :-)

royrojas 08/04/2008 10:36

Re: Duda sobre ListView
 
estan estos dos eventos del ListView

ItemSelectionChanged
Private Sub ListView1_ItemSelectionChanged(ByVal sender As Object, ByVal e As System.Windows.Forms.ListViewItemSelectionChangedE ventArgs) Handles ListView1.ItemSelectionChanged

SelectedIndexChanged
Private Sub ListView1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListView1.SelectedIndexChanged

meraViglia 08/04/2008 17:15

Re: Duda sobre ListView
 
Cita:

Iniciado por royrojas (Mensaje 2354795)
estan estos dos eventos del ListView

ItemSelectionChanged
Private Sub ListView1_ItemSelectionChanged(ByVal sender As Object, ByVal e As System.Windows.Forms.ListViewItemSelectionChangedE ventArgs) Handles ListView1.ItemSelectionChanged

SelectedIndexChanged
Private Sub ListView1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListView1.SelectedIndexChanged

si ya esas las habia probado pero me da un error cuando seleciono un segundo renglon , el error es

InvalidArgument=El valor de '0' no es válido para 'index'.
Nombre del parámetro: index

que puede ser ??

royrojas 08/04/2008 17:19

Re: Duda sobre ListView
 
podrias poner la linea que te da el error?

royrojas 08/04/2008 17:28

Re: Duda sobre ListView
 
ya vi cual era el error

pon esto

If CType(sender, ListView).SelectedItems.Count > 0 Then

End If

el asunto es que en un momento no hay ninguna linea seleccionada, entonces por eso dio el error del indice 0, pero seguidamente se vuelve a seleccionar, ese evento se ejecuta dos veces seguidas, una cuando deselecciona la linea del listview y la siguiente cuando se selecciona la siguiente linea.

meraViglia 08/04/2008 19:13

Re: Duda sobre ListView
 
Cita:

Iniciado por royrojas (Mensaje 2355470)
ya vi cual era el error

pon esto

If CType(sender, ListView).SelectedItems.Count > 0 Then

End If

el asunto es que en un momento no hay ninguna linea seleccionada, entonces por eso dio el error del indice 0, pero seguidamente se vuelve a seleccionar, ese evento se ejecuta dos veces seguidas, una cuando deselecciona la linea del listview y la siguiente cuando se selecciona la siguiente linea.

excelente ya no da el error y mientra voy subiendo y bajando por el listview se va mostrarndo el dato en un textbox , muchas gracias :aplauso:

lo que no entiendo porque la condicion If CType(sender,

por otro aldo

un ultimo detalle , como puedo mostrar dos campos en un solo combobox
con esto

Me.ComboBox1.DisplayMember = "descripcion_tipoDoc"

solo puedo hacer que aparesca un solo campo pero yo necesito dos , normalmente en las propiedades deberia de haber algo sobre eso pero no encuentro nada .

desde ya muchas gracias

royrojas 08/04/2008 23:58

Re: Duda sobre ListView
 
el Ctype lo que hace es convertir un tipo de dato en otro

en este caso
CType(sender, ListView)
convierte el objeto sender en un onjeto Listview, mas que todo por comodidad
por que igual hubiera funcionado con
sender.SelectedItems.Count

pero si lo haces como el segundo cuando pones el . (punto) no te aparecen las propiedades del listview.

con respecto al combo, el combo que provee .Net no te da esa posibilidad de mostrar dos campos en la descripcion, esas propiedades se podrian en controles como los de Infragistics. pero el default de .Net no te deja hacer eso.

lo que podrias hacer es que desde el procedimiento almacenado te muestre en una columna y concatenas los datos.

o le agregas al datatable que muestras en el combo, una columna con expression y le concatenas los datos.

por ejemplo
tienes un dataset con una tabla, el dataset se llama ds
este dataset tiene una tabla y con dos columnas Col01 y Col02

entones le agregas una nueva columna llamada Col03

ds.Tables(0).Columns.Add("Col03", GetType(String), "Col01 + Col02")

Esta nueva columna es la que muestras en el combo en la descripcion.

y listo

aqui hay dos buenos ejemplos para manejar expressions y compute en el datatable
http://www.dotnetcr.com/Libreria.asp...n-un-DataTable
http://www.dotnetcr.com/Libreria.asp...-del-DataTable

meraViglia 09/04/2008 08:38

Re: Duda sobre ListView
 
ok bien, lo puse de esta forma

en la tabla tengo solo tres columnas osea que la que fuera a crear seria una cuarta descripcion_tipoDoc4 y esa nueva columna se la paso al combobox quedando de esta forma


datos2.Tables(0).Columns.Add("descripcion_tipoDoc4 ", GetType(String), "cod_tipoDoc + id_tipoDoc + descripcion_tipoDoc ")

Me.ComboBox1.DisplayMember = "descripcion_tipoDoc4"

cuando copilo me sale lo siguiente en el combobox

System.Data.DataRowView . Tanta veces como registro haya

tendria que ver la otra forma de concatenar sin hacer una cuarta columna ??

royrojas 09/04/2008 09:03

Re: Duda sobre ListView
 
como se llaman las 3 columnas de tu tabla?

meraViglia 09/04/2008 09:44

Re: Duda sobre ListView
 
Cita:

Iniciado por royrojas (Mensaje 2356229)
como se llaman las 3 columnas de tu tabla?

se llaman

tabla tipo_documento

id_tipoDoc
descripcion_tipoDoc y
cod_tipoDoc

en el combobox solo quiero que aparezcan el cod_tipoDoc y el descripcion_tipoDoc

royrojas 09/04/2008 09:51

Re: Duda sobre ListView
 
me podrias poner como estas llenando el combo, por que me parece q ahi estas haciendo algo mal.
es como si le enviaras el gettype como descripcion.

por que lo que te envie para concatenar esta bueno, mas que probado, ahi no hay error.

y a lo anterior me falto ponerle el espacio en blanco entre las columnas, se hace asi

ds.Tables(0).Columns.Add("Columna04", GetType(String), "Columna01 + ' ' + Columna02 + ' ' + Columna03")

meraViglia 09/04/2008 10:13

Re: Duda sobre ListView
 
bueno tengo el llenado del dataset

Me.dataadapter.Fill(datos2, "tipo_documento") 'despues
Me.ComboBox1.DataSource = datos2.Tables(0) 'y por ultimo

datos2.Tables(0).Columns.Add("descripcion_tipoDoc4 ", GetType(String), "cod_tipoDoc + ' ' + id_tipoDoc + ' ' + descripcion_tipoDoc ")

¿no deberia de ir algun ComboBox1.DisplayMember ?


La zona horaria es GMT -6. Ahora son las 18:17.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.