none
¿Como utilizar el evento cell datagridview validating?

    Pregunta

  • Saludos, tengo un datagridview, y necesito validar algunas columnas para que cuando el usuario ingrese texto, aparesca un mensaje y aparesca en la celda el valor anterior, he intentado desde cellendedit pero me salta un error del datagridview, asi que he visto que se soluciona con el evento cell validating pero sinceramente no sé como utilizarlo, ademas son solo algunas columnas, porque otras admiten texto.

     

    Gracias por cualquier ayuda que me puedan ofrecer.

    sábado, 11 de junio de 2011 12:15

Respuestas

  • podrias en lugar de aplciar el e.Cancel = true

    no hacerlo y de volver asignar el valor de esa variable en la celda y candelar el edicion

    o sea sino pasa la validacion harias

    dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = variable;

    dataGridView1.EndEdit();

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta Wolfstain sábado, 11 de junio de 2011 14:38
    sábado, 11 de junio de 2011 14:18

Todas las respuestas

  • hola

    pero el evento validating no es el que volvera el valor anterior, sino que evitara que el usuario deje la celda a menoa que pase la validacion

    por ejemplo revisa el ejemplo que doy aqui

    http://social.msdn.microsoft.com/Forums/es-ES/vbes/thread/a142c2d3-08b0-48fe-a268-786e2eea9bf0/

    http://social.msdn.microsoft.com/Forums/es-ES/vcses/thread/20a7a734-df11-46b3-ae53-9a4c9b1636a9/

    veras que el evento valida si es una fecha correcta sino lo es se aplcia el e.Cancel=true para indicar que no se pasa la validacion y seasigna el ErrorText para la fila que tiene el problema con el mensaje

    Cómo: Validar datos en el control DataGridView de formularios Windows Forms

     

    solo cuando el usuario ingrese un valor correcto es que permitimos que pase la validacion

    para que sea en algunas columnas lo verificamos cuando se hace

    if (dataGridView1.Columns[e.ColumnIndex].Name == "nombrecolumna")

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta Wolfstain sábado, 11 de junio de 2011 14:11
    • Desmarcado como respuesta Wolfstain sábado, 11 de junio de 2011 14:11
    sábado, 11 de junio de 2011 13:52
  • Pero no puedo hacer que si la validacion sea incorrecta entonces la celda tome el valor anterior?, -ya tengo una variable que almacena ese valor anterior-.

    sábado, 11 de junio de 2011 14:12
  • podrias en lugar de aplciar el e.Cancel = true

    no hacerlo y de volver asignar el valor de esa variable en la celda y candelar el edicion

    o sea sino pasa la validacion harias

    dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = variable;

    dataGridView1.EndEdit();

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta Wolfstain sábado, 11 de junio de 2011 14:38
    sábado, 11 de junio de 2011 14:18