In this tutorial, we’ll learn How to change dataGridView Cell Color dynamically using C# Windows Form Application.
When the button is clicked, If there are more than 10 days diffdrence Between two dates, we will change the background color as red, foreground color as white and font style as bold of the cell.
Source Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace datagrid_1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { dataGridView1.ColumnCount = 4; dataGridView1.Columns[0].Name = "Book"; dataGridView1.Columns[1].Name = "Borrowed date"; dataGridView1.Columns[2].Name = "Delivered date"; dataGridView1.Columns[3].Name = "Time Span"; dataGridView1.Rows.Add("Book 1", "13.01.2018", "20.01.2018"); dataGridView1.Rows.Add("Book 2", "05.03.2018", "13.03.2018"); dataGridView1.Rows.Add("Book 3", "20.04.2018", "15.05.2018"); dataGridView1.Rows.Add("Book 4", "18.04.2018", "11.05.2018"); dataGridView1.Rows.Add("Book 5", "01.06.2018", "22.08.2018"); dataGridView1.Rows.Add("Book 6", "30.05.2018", "02.06.2018"); dataGridView1.Rows.Add("Book 7", "04.04.2018", "12.05.2018"); dataGridView1.Rows.Add("Book 8", "12.03.2018", "10.04.2018"); } private void button1_Click(object sender, EventArgs e) { DataGridViewCellStyle style = new DataGridViewCellStyle(); style.Font = new Font(dataGridView1.Font, FontStyle.Bold); style.BackColor = Color.Red; style.ForeColor = Color.White; DateTime d1; DateTime d2; for (int i = 0; i < dataGridView1.RowCount - 1; i++) { d1 = Convert.ToDateTime(dataGridView1.Rows[i].Cells[2].Value); d2 = Convert.ToDateTime(dataGridView1.Rows[i].Cells[1].Value); TimeSpan ts = d1 - d2; dataGridView1.Rows[i].Cells[3].Value = ts.Days; if(ts.Days>10) { dataGridView1.Rows[i].Cells[3].Style = style; } } } } } |
Output: