Cómo colorear celdas de una tabla (datagridview) en VB.NET
En este sencillo tutorial veremos el código necesario para colorear celdas, filas o columnas de una datagridview según sus valores cambiando el color de fondo.
Suponemos que ya tenemos una datagrid con datos obtenidos, por ejemplo, desde una base de datos.
Private Sub DataGridView_CellFormatting(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) Handles DataGridView.CellFormattingTry If Me.DataGridView.Columns(e.ColumnIndex).Name = "DataGridViewTextBoxColumn7" Then If e.Value IsNot Nothing Then Dim valor As Integer = CType(e.Value, Integer) If (valor >= 100) Then e.CellStyle.BackColor = Color.Yellow End If End If End If Catch ex As Exception MsgBox(ex.Message) End TryEnd Sub
Si deseamos colorear alguna casilla o celda según su valor, debemos llamar al método CellFormatting del objeto DatagridView. Este método se llama cada vez que se pinta la celda por pantalla.
A continuación, comprobaremos que el nombre de la celda coincide con el nombre de la columna, y si es el caso, procederemos a obtener el valor que hay en ese campo. Es importante convertir el tipo de dato que contiene la celda al tipo que nosotros deseemos con el método CType(“valor”, tipo), ya que sinó saltará una excepción.
En nuestro ejemplo, se comprobará si la celda contiene un entero mayor o igual a 100. Si es el caso, pintaremos la casilla de color amarillo.