none
Poder modificar SOLO una columna de un datagridview , pero el resto no RRS feed

  • Pregunta

  • Hola 

    Tengo un datagridview con solo lectura (Readonly = true). El tema es que quiero que se puedan modificar las celdas desde el mismo datagridview pero solo para un campo es decir para una sola columna.

    Debo cargar algo en el Load del form?

    viernes, 2 de octubre de 2020 20:44

Respuestas

  • Hola Yan Eric

    Tendrías que asignar true o false a las columnas por su índice o por su nombre.

    dataGridView1.Columns[indice].ReadOnly = true;  // o false

    dataGridView1.Columns["Estado"].ReadOnly = false;

    Saludos

    Pablo

    • Marcado como respuesta Eric_96 viernes, 2 de octubre de 2020 23:55
    • Desmarcado como respuesta Eric_96 viernes, 2 de octubre de 2020 23:57
    • Marcado como respuesta Eric_96 viernes, 2 de octubre de 2020 23:58
    viernes, 2 de octubre de 2020 23:43

Todas las respuestas

  • hola

    Deberias definir el ReadOnly en false a las columnas que no quieres que se puedan editar

    DataGridViewColumn.ReadOnly Property

    no solo el grid tiene esta propiedad, tambien lo tiene cada columna

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 2 de octubre de 2020 20:51
  • Entiendo leandro

    El tema que si lo pongo como el link que me pasaste, me deja editar los valores de todas las columnas, y lo que necesito es que se pueda editar unicamente los valores de la columna "Estado"

    El problema es que si lo pongo asi me deja editar los valores de todas las columnas, 

    viernes, 2 de octubre de 2020 23:10
  • Hola Yan Eric Abramian,

    Creo que lo que sucede es que debes especificar el valor de la propiedad ReadOnly para cada columna (poniendo en false las que deben poder editarse).

    //para el datagridview en general ReadOnly es true, no editable
    
    dataGridView1.ReadOnly = true;
    
    //para esta columna en específico, ReadOnly es false, editable
    
    dataGridView1.Columns[3].ReadOnly = false;

    También podrías intentar con un ciclo:

    foreach (DataGridViewColumn dc in dataGridViewX1.Columns)
    
    {
    
           if (dc.Index.Equals(3))
    
           {
    
               dc.ReadOnly = false;
    
           }
    
           else
    
           {
    
                dc.ReadOnly = true;
    
           }
    
     }

    Espero que te sea de ayuda. Por favor no olvides marcar una respuesta si resolviste tu consulta (debajo de cada post hay una opción que dice “Marcar como Respuesta”). Quedo pendiente de cualquier actualización. Gracias por levantar tu consulta en los foros de msdn.

     

    Saludos cordiales

    Gabriel Castro

     ____________________________ 

    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. 


    viernes, 2 de octubre de 2020 23:18
    Moderador
  • Hola Yan Eric

    Tendrías que asignar true o false a las columnas por su índice o por su nombre.

    dataGridView1.Columns[indice].ReadOnly = true;  // o false

    dataGridView1.Columns["Estado"].ReadOnly = false;

    Saludos

    Pablo

    • Marcado como respuesta Eric_96 viernes, 2 de octubre de 2020 23:55
    • Desmarcado como respuesta Eric_96 viernes, 2 de octubre de 2020 23:57
    • Marcado como respuesta Eric_96 viernes, 2 de octubre de 2020 23:58
    viernes, 2 de octubre de 2020 23:43
  • Hola Yan Eric Abramian,

    Disculpa la demora, arriba te dejo la respuesta, aunque veo que ya lo resolviste.

    Saludos cordiales

    Gabriel Castro

     ____________________________ 

    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. 

    sábado, 3 de octubre de 2020 0:03
    Moderador