none
FullRowSelect

    Pregunta

  • Hola amigos.

    Estoy intentando   (sin conseguirlo) recorrer un Datagridview seleccionando toda la fila menos una celda que ya tiene un color propio.

    Las lineas:

    Datagridview1.currentRow.cells(0).selected=true

    Datagridview1.currentRow.cells(1).selected=true

    Datagridview1.currentRow.cells(3).selected=true

    ...etc

    ...etc

    lo hacen, pero busco una forma mas elegante de hacerlo porque mi datagridview tiene 13 columnas

    He probado a poner la grilla a SelectionMode=FullRowSelect  "deseleccionar" la columna que me interesa pero no funciona.

    Espero vuestra ayuda porque seguro que hay una forma facil y elegante de hacerlo que no llego a vislumbrar.

    Gracias y hasta siempre.

    sábado, 31 de diciembre de 2016 13:31

Respuestas

  • Hola DiegC,

    Lo que podrías hacer es cambiar los valores por defecto del SelectionBackColorSelectionForeColor en el evento Load de tu formulario, así la columna 'x' ya no te mostraría la selección :

    With DataGridView1.Columns(2)  'Columna 3, con posición 2
        .DefaultCellStyle.SelectionBackColor = Color.Transparent
        .DefaultCellStyle.SelectionForeColor = DataGridView1.DefaultCellStyle.ForeColor 'Color por defecto
    End With

    Como se puede ver cambiamos el color por defecto de la selección a un color Transparente, así mostraría el color de la celda.

    Resultado :

    Saludos y Feliz Año 2017 :) .


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    • Marcado como respuesta DiegC lunes, 2 de enero de 2017 18:20
    sábado, 31 de diciembre de 2016 17:35

Todas las respuestas

  • Hola DiegC,

    Lo que podrías hacer es cambiar los valores por defecto del SelectionBackColorSelectionForeColor en el evento Load de tu formulario, así la columna 'x' ya no te mostraría la selección :

    With DataGridView1.Columns(2)  'Columna 3, con posición 2
        .DefaultCellStyle.SelectionBackColor = Color.Transparent
        .DefaultCellStyle.SelectionForeColor = DataGridView1.DefaultCellStyle.ForeColor 'Color por defecto
    End With

    Como se puede ver cambiamos el color por defecto de la selección a un color Transparente, así mostraría el color de la celda.

    Resultado :

    Saludos y Feliz Año 2017 :) .


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    • Marcado como respuesta DiegC lunes, 2 de enero de 2017 18:20
    sábado, 31 de diciembre de 2016 17:35
  • Hola Joel.

    Gracias por tu respuesta y perdona la demora en atenderla.

    Habia probado varias cosas, pero no se me habia ocurrido tu solucion. Facil, efectiva. Hace exactamente lo que quiero

    Gravias de nuevo y felices fiestas

    domingo, 1 de enero de 2017 9:48