none
Agregar columnas automaticamente a un DataGridView RRS feed

  • Pregunta

  • Saludos a todos.

    He buscado por el foro, y si bien he encontrado temas relacionados con el título de la pregunta, la verdad es que no me aclaro bien. Motivo por el cual, agradecería vuestra inestimable ayuda.

    Tengo un dataGridView0, el cual tiene ya 10 columnas. Quiero cargar un fichero txt y añadir a ese dataGridview0 tantas columnas como filas de texto tenga el txt. (nota: la cantidad de filas es variable y va en función del fichero cargado).

    Tal vez la propiedad AutoGenerateColumns = true sea la indicada para ello, pero cómo se hace? He estado revisando esta pagina de microsoft y no me aclaro.

    Por otro lado, y en relación a las columnas, ¿cómo se identifican las columnas?, Es decir, quisiera que la primera columna agregada fuese la 1, la segunda columna añadida, fuese la 2 y así sucesivamente hasta la última.

    Cordiales saludos. Gracias anticipadas.

    domingo, 4 de abril de 2021 19:44

Respuestas

  • Me parece que estás confundiendo filas con columnas. En principio planteaste que querías que cada fila del txt contuviera el titulo de una columna del DGV. Si es esto lo que quieres hacer, aqui tenes un ejemplo.

    String ruta = @"C:\Columnas.txt";
          string[] lineas = System.IO.File.ReadAllLines(ruta);
    
          DGV.AutoGenerateColumns = false;
          for (int i = 0; i < lineas.Length ; i++)
          {
            DataGridViewTextBoxColumn c = new DataGridViewTextBoxColumn();
            c.Name = "Col" + (i+1).ToString();
            c.HeaderText = lineas[i];
            c.Width = 100;
            DGV.Columns.Add(c);
          }

    domingo, 4 de abril de 2021 21:13

Todas las respuestas

  • Hola Georgina. Normalemte las filas de un DGV se agregan automaticamente, según la cantidad de filas de la fuente de datos a la que está enlazado.

    Para tu caso creo que lo ideal sería crear una clase con propiedades que representen las columnas del txt que quieres mostrar. Luego es relativamente sencillo leer el txt, cargar los datos en objetos de esa clase y mostrarlos en el DGV. Si te interesa este camino, dame más información y así te sugiero una solución. Necesitarás saber como están separadas las columnas del txt.

    domingo, 4 de abril de 2021 20:04
  • Hola:

    Ver vídeo.

    Saludos.


    http://electronica-pic.blogspot.com

    domingo, 4 de abril de 2021 20:18
  • Gracias por tu amable respuesta AntiWork.

    De momento, solamente me interesa añadirle la cantidad de columnas al datagridview ( tantas columnas como filas tenga el fichero).

    Los datos en las filas del fichero los tengo separados por comas, pero es irrevelante porque no se van a usar en un principio. Una vez tenga el datagridview con su cantidad de columnas correspondientes, entonces es cuando se vuelvan los datos al mismo previamente aplicando unas operaciones matemáticas.

    domingo, 4 de abril de 2021 20:34
  • Entiendo. Entonces, antes de agregar las columnas debes poner:

    DGV.AutoGenerateColumns = false;

    Luego Lees el txt y haces un bucle para descorrer las filas e ir agregando las columnas

    domingo, 4 de abril de 2021 20:48
  • Gracias Metaconta.

    Es video está muy bien cuando vas  añadir un par de columnas, pero si tienes un fichero con 100 filas, o un fichero con 500 filas, y quieres añadir esa cantidad de columnas (columnas tipo textBoxColumn),  eso no se puede hacer a mano. ¿Cómo se hace? Gracias

    domingo, 4 de abril de 2021 20:49
  • ok.  Leo las filas del txt y supongamos que tiene, 300 ( eso lo tengo hecho).

    Y ahora como hago el for?

    int filas= "la cantidad de filas del texto"

    for ( int i=0; 1< filas; i++)

    {

           qué pongo aquí dentro?

    }

    domingo, 4 de abril de 2021 20:57
  • Me parece que estás confundiendo filas con columnas. En principio planteaste que querías que cada fila del txt contuviera el titulo de una columna del DGV. Si es esto lo que quieres hacer, aqui tenes un ejemplo.

    String ruta = @"C:\Columnas.txt";
          string[] lineas = System.IO.File.ReadAllLines(ruta);
    
          DGV.AutoGenerateColumns = false;
          for (int i = 0; i < lineas.Length ; i++)
          {
            DataGridViewTextBoxColumn c = new DataGridViewTextBoxColumn();
            c.Name = "Col" + (i+1).ToString();
            c.HeaderText = lineas[i];
            c.Width = 100;
            DGV.Columns.Add(c);
          }

    domingo, 4 de abril de 2021 21:13
  • Si no es eso poné un para de filas del txt de ejemplo
    domingo, 4 de abril de 2021 21:15
  • Gracias. Es exactamente lo que quería.

    Añadir X columnas a un datagridview dependiendo de la cantidad de filas que tenga un txt.

    Saludos  cordiales a todos.

    domingo, 4 de abril de 2021 21:45
  • Hola,

    Gracias por levantar tu consulta en los foros de MSDN.

    Eric Ruiz

    ____________________________

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.

    Si tiene algún cumplido o reclamo sobre el soporte de MSDN siéntase en la libertad de contactar MSDNFSF@microsoft.com.

    lunes, 5 de abril de 2021 13:57
    Moderador