none
Diferenciar Datos en DataGdridView RRS feed

  • Pregunta

  • Buenos días  a todos,

    Tengo una columna en un datagridview de la siguiente manera:

    NOMBRE

    Carlos

    Carlos

    Carlos

    Jose

    Jose

    Jose

    Pilar

    Pilar

    ¿Como puedo hacer para insertar un VALOR cuando cambia el nombre?, es decir:

    Carlos

    Carlos

    Carlos

    VALOR

    Jose

    Jose

    Jose

    VALOR

    Pilar

    Pilar

    VALOR

    No se si me he explicado bien, como siempre 1000 gracias

    viernes, 25 de octubre de 2019 7:46

Respuestas

  • Yo te diría que lo más práctico probablemente va a ser hacerlo "a lo bestia" con un bucle. Simplemente vas recorriendo con un "for" los datos de la columna y a cada iteración del bucle comparas el dato de la fila i con el de la fila i-1 (obviamente comenzando por la segunda fila para que no dé un error al acceder a la anterior). Si los dos valores son distintos, entonces usas el método Insert de la colección de filas para insertar un nuevo DataGridViewRow con el valor deseado, y sumas 1 al contador del bucle para que a la siguiente iteración no compare con la fila que acabas de insertar.

    • Marcado como respuesta Juan Martinez F viernes, 25 de octubre de 2019 10:48
    viernes, 25 de octubre de 2019 8:13
  • Bueno, esta última pregunta resulta un poco difícil de entender por sí sola, sin explicar más detalles. Dado que el DataGridView en sí mismo no tiene ninguna forma de imprimirlo, es difícil determinar cuál sería la forma de que se muestre igual que se imprime, puesto que no sabemos qué estás haciendo para imprimirlo ni cuál es el aspecto que deseas conseguir.

    Sugiero que abras para este tema otro hilo, ya que no guarda prácticamente ninguna relación con la pregunta inicial. Ponle un título suficientemente explicativo para que llame la atención de quienes tengan conocimiento de este tema, y da unos cuantos más detalles acerca de cómo estás haciendo las cosas y cómo quieres que queden.

    Normalmente la forma de colorear el DataGridView es implementar un manejador para su evento CellPainting y ahí dentro escribir sentencias de GDI+ (System.Drawing) para dibujar el fondo de la celda, los bordes y el texto que contiene. Es complicadillo (queda bastante largo) pero es muy flexible porque puedes dibujar cualquier cosa que quieras, con el estilo y los colores que quieras. Como te digo, es preferible abrir otro hilo para esto, ya que es bastante complejo de hacer y guarda muy poca relación con lo que estábamos tratando aquí.

    • Marcado como respuesta Juan Martinez F viernes, 25 de octubre de 2019 12:36
    viernes, 25 de octubre de 2019 12:13

Todas las respuestas

  • Yo te diría que lo más práctico probablemente va a ser hacerlo "a lo bestia" con un bucle. Simplemente vas recorriendo con un "for" los datos de la columna y a cada iteración del bucle comparas el dato de la fila i con el de la fila i-1 (obviamente comenzando por la segunda fila para que no dé un error al acceder a la anterior). Si los dos valores son distintos, entonces usas el método Insert de la colección de filas para insertar un nuevo DataGridViewRow con el valor deseado, y sumas 1 al contador del bucle para que a la siguiente iteración no compare con la fila que acabas de insertar.

    • Marcado como respuesta Juan Martinez F viernes, 25 de octubre de 2019 10:48
    viernes, 25 de octubre de 2019 8:13
  • Muchas gracias Alberto, es lo que había pensado.

    Para visualizar el datagridview igual que el contenido,es decir antes de imprimirlo mostrarlo igual,con las lineas de las filas,columnas,si alguna fila tiene color pues también.

    Sabrías orientarme?

    1000 gracias.

    viernes, 25 de octubre de 2019 10:48
  • Bueno, esta última pregunta resulta un poco difícil de entender por sí sola, sin explicar más detalles. Dado que el DataGridView en sí mismo no tiene ninguna forma de imprimirlo, es difícil determinar cuál sería la forma de que se muestre igual que se imprime, puesto que no sabemos qué estás haciendo para imprimirlo ni cuál es el aspecto que deseas conseguir.

    Sugiero que abras para este tema otro hilo, ya que no guarda prácticamente ninguna relación con la pregunta inicial. Ponle un título suficientemente explicativo para que llame la atención de quienes tengan conocimiento de este tema, y da unos cuantos más detalles acerca de cómo estás haciendo las cosas y cómo quieres que queden.

    Normalmente la forma de colorear el DataGridView es implementar un manejador para su evento CellPainting y ahí dentro escribir sentencias de GDI+ (System.Drawing) para dibujar el fondo de la celda, los bordes y el texto que contiene. Es complicadillo (queda bastante largo) pero es muy flexible porque puedes dibujar cualquier cosa que quieras, con el estilo y los colores que quieras. Como te digo, es preferible abrir otro hilo para esto, ya que es bastante complejo de hacer y guarda muy poca relación con lo que estábamos tratando aquí.

    • Marcado como respuesta Juan Martinez F viernes, 25 de octubre de 2019 12:36
    viernes, 25 de octubre de 2019 12:13
  • Ya lo conseguí.

    Muchas gracias por tu atención.

    viernes, 25 de octubre de 2019 12:36