Foros del Web » Programación para mayores de 30 ;) » .NET »

Listview

Estas en el tema de Listview en el foro de .NET en Foros del Web. Hola. Como puedo agregar items a diferentes columnas de la misma linea y desde diferentes eventos? Pasa que, si añado un item a la primera ...
  #1 (permalink)  
Antiguo 11/11/2010, 09:56
 
Fecha de Ingreso: febrero-2009
Mensajes: 7
Antigüedad: 15 años, 2 meses
Puntos: 0
Listview

Hola.
Como puedo agregar items a diferentes columnas de la misma linea y desde diferentes eventos?

Pasa que, si añado un item a la primera columna, se añade a la primera linea.

Si desde otro evento quiero añadir otro item a la segunda columna de la primera linea ocurre que se añade a la segunda columna pero en la segunda linea.

Att: Rafael
  #2 (permalink)  
Antiguo 12/11/2010, 09:15
 
Fecha de Ingreso: septiembre-2009
Ubicación: Cuenca
Mensajes: 57
Antigüedad: 14 años, 7 meses
Puntos: 3
Respuesta: Listview

Debes estar agregando la información así:

En Evento1:
GRID[i,i].Value="evento1";
i=i+1;

En Evento2:
GRID[i,i].Value="evento2";
i=i+1;

O algo similar. Las celdas de la grilla (en C# y muy seguramente en los otros lenguajes de la plataforma .NET) tienen la siguiente referencia: GRID[columna, fila], por lo que deberías hacer algo así (te doy el código en C#) teniendo en cuenta que 'i' es el número de columna y 'j' el número de fila iniciando ambas en cero:

Código C#:
Ver original
  1. EventoX()
  2. {
  3.    if (i<Grilla.Columns.Count) //si aún hay celdas pendientes en la fila actual
  4.       Grilla[i,j].Value="Algun texto";
  5.    else // esto es en caso que acabe la fila y que pase a la siguiente
  6.    {
  7.       i=0; //primera columna
  8.       j++; // equivale a   j=j+1 esto es para ir a la siguiente fila
  9.       if (j<Grilla.Rows.Count)
  10.          Grilla[i,j].Value="Algun texto";
  11.       else
  12.          MessageBox.Show("No hay más filas","Error");
  13.    }      
  14.    i++; //es lo mismo que decir   i=i+1, esto es para incrementar de columna
  15. }

El código que he dado controla desbordamientos de filas y columnas y lo podrías poner en cualquier evento. Por favor me comentas cualquier situación.

Saludos.
  #3 (permalink)  
Antiguo 15/11/2010, 13:31
 
Fecha de Ingreso: septiembre-2010
Mensajes: 38
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Listview

Cita:
Iniciado por pancho2413 Ver Mensaje
Debes estar agregando la información así:

En Evento1:
GRID[i,i].Value="evento1";
i=i+1;

En Evento2:
GRID[i,i].Value="evento2";
i=i+1;

O algo similar. Las celdas de la grilla (en C# y muy seguramente en los otros lenguajes de la plataforma .NET) tienen la siguiente referencia: GRID[columna, fila], por lo que deberías hacer algo así (te doy el código en C#) teniendo en cuenta que 'i' es el número de columna y 'j' el número de fila iniciando ambas en cero:

Código C#:
Ver original
  1. EventoX()
  2. {
  3.    if (i<Grilla.Columns.Count) //si aún hay celdas pendientes en la fila actual
  4.       Grilla[i,j].Value="Algun texto";
  5.    else // esto es en caso que acabe la fila y que pase a la siguiente
  6.    {
  7.       i=0; //primera columna
  8.       j++; // equivale a   j=j+1 esto es para ir a la siguiente fila
  9.       if (j<Grilla.Rows.Count)
  10.          Grilla[i,j].Value="Algun texto";
  11.       else
  12.          MessageBox.Show("No hay más filas","Error");
  13.    }      
  14.    i++; //es lo mismo que decir   i=i+1, esto es para incrementar de columna
  15. }

El código que he dado controla desbordamientos de filas y columnas y lo podrías poner en cualquier evento. Por favor me comentas cualquier situación.

Saludos.


hola compañero disculpen que pregunte aca pero tengo casi el mismo problema... bueno...queria hacerle una consulta...quisiera agregar un elemento a listview pero utilizando esto:

Código vb:
Ver original
  1. f CnSqlP.State = ConnectionState.Open Then CnSqlP.Close()
  2.       CnSqlP.Open()
  3.       ' propiedades del SqlCommand  
  4.      Dim comando As New NpgsqlCommand
  5.       With comando
  6.           .CommandType = CommandType.Text
  7.           .CommandText = Sql
  8.           .Connection = CnSqlP
  9.       End With
  10.  
  11.       Dim DA As New NpgsqlDataAdapter  ' Crear nuevo SqlDataAdapter  
  12.      Dim DataSet As New DataSet ' Crear nuevo dataset  
  13.      DA.SelectCommand = comando
  14.       ' llenar el dataset  
  15.      DA.Fill(DataSet, "Tabla")
  16.       ' Propiedades del ListView  
  17.      With ListView
  18.                       .Items.Clear()
  19.                       .Columns.Clear()
  20.                       .View = View.Details
  21.                       .GridLines = True
  22.                       .FullRowSelect = True
  23.                       ' añadir los nombres de columnas  
  24.                      .Columns.Add("CODIGO", 55, HorizontalAlignment.Left)
  25.                       .Columns.Add("COMISION", 65, HorizontalAlignment.Left)
  26.                       .Columns.Add("FECHA INICIO", 90, HorizontalAlignment.Left)
  27.                       .Columns.Add("HORARIOS", 140, HorizontalAlignment.Left)
  28.                       .Columns.Add("ALUMNOS", 80, HorizontalAlignment.Left)
  29.       End With
  30.  
  31.        ' Añadir los registros de la tabla  
  32.  
  33.       With DataSet.Tables("tabla")
  34.           For f As Integer = 0 To .Rows.Count - 1
  35.           Dim dato As New ListViewItem(.Rows(f).Item(0).ToString)
  36.           ' recorrer las columnas  
  37.                For c As Integer = 1 To .Columns.Count - 1
  38.                       dato.SubItems.Add(.Rows(f).Item(c).ToString())
  39.                 Next
  40.             ListView.Items.Add(dato)
  41.           Next
  42.       End With


o sea aca ingreso los datos q vienen de una consulta...el tema es que en la columna ALUMNO quiero agregar un elemento que en este caso es un nro...
o sea dnd dice:

For c As Integer = 1 To .Columns.Count - 1
c=5 ingresar el nro, caso contrario ingreso los valores de la consulta...
if c=5 then
ingreso el nro
else
dato.SubItems.Add(.Rows(f).Item(c).ToString())
end if
Next


espero haberme explicado...desde ya muchas gracias...

pd:utilizo vb.net(2005)

Etiquetas: 2008, basic, columns, items, listview, visual, vbnet
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:32.