none
Añadir una columna a un DataGridView RRS feed

  • Pregunta

  • Hola tengo un DataGridView con 3 columnas y queria añadir otra al apretar un botón.Tengo el siguiente codigo pero me da un error

    private void BTCambiarDias_Click(object sender, EventArgs e)
            {
                DataGridViewColumn dgc = new DataGridViewColumn();
                dgc = DGAgenda.Columns[0];            
                int a=DGAgenda.Columns.Add(dgc);
            }

    viernes, 22 de enero de 2010 13:20

Respuestas

  • Finalmente la hice de esta manera, lo dejo por si a alguien le sirve de algo
    private void BTCambiarDias_Click(object sender, EventArgs e)
            {
                //La propiedad CellTemplate es requerida
                //La propiedad AutoSizeMode no es requerida pero estaria bien que fuese DGAgenda.Columns[0].AutoSizeMode= fill
                DataGridViewColumn dgc = new DataGridViewColumn();
                dgc.CellTemplate = DGAgenda.Columns[0].CellTemplate;
                dgc.AutoSizeMode = DGAgenda.Columns[0].AutoSizeMode;
                DGAgenda.Columns.Add(dgc);
            }

    • Marcado como respuesta tikitaca viernes, 22 de enero de 2010 17:17
    viernes, 22 de enero de 2010 16:54

Todas las respuestas

  • hola

    pero en ese codigo hay algo incorrecto, o sea primero estas xcreando una nueva instancia de columna, pero a continuacion tomas una existente y la vuelves a agregar

    si la idea es por medio de codigo crear una columna nueva simplemente deberias hacer

    DataGridViewColumn dgc = new DataGridViewColumn();          
    DGAgenda.Columns.Add(dgc);

    pero bueno veo que falta especificar otros valoresde propiedades para las columnas

    DataGridViewColumn (Clase)

    en el link hay ejemplo, y veras que seria bueno especificar algunas propiedades de la columna como podria ser su "Name"

    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    viernes, 22 de enero de 2010 13:30
  • Hola meti el codigo q me dijiste:
     
            
    private void BTCambiarDias_Click(object sender, EventArgs e)
            {
                DataGridViewColumn dgc = new DataGridViewColumn();
                DGAgenda.Columns.Add(dgc);
            }
    Me sale una excepción tipo:InvalidOperationException que luego al ver en detalles pone: {"La columna no se puede agregar porque su propiedad CellType es nula."}
    viernes, 22 de enero de 2010 15:23
  • hola

    como te habia comentado crear la columna asi sola por ahi no es lo ideal, hay propiedades que deberias asignar, una que te comentaba era el Name

    pero como veras claro en el erro que obtienes otra es el CellType

    simplemente asigna un valor a estas propeidades antes de hacer el Add()


    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    viernes, 22 de enero de 2010 15:28
  • Finalmente la hice de esta manera, lo dejo por si a alguien le sirve de algo
    private void BTCambiarDias_Click(object sender, EventArgs e)
            {
                //La propiedad CellTemplate es requerida
                //La propiedad AutoSizeMode no es requerida pero estaria bien que fuese DGAgenda.Columns[0].AutoSizeMode= fill
                DataGridViewColumn dgc = new DataGridViewColumn();
                dgc.CellTemplate = DGAgenda.Columns[0].CellTemplate;
                dgc.AutoSizeMode = DGAgenda.Columns[0].AutoSizeMode;
                DGAgenda.Columns.Add(dgc);
            }

    • Marcado como respuesta tikitaca viernes, 22 de enero de 2010 17:17
    viernes, 22 de enero de 2010 16:54