C#根据条件设置datagridview行的颜色

本文介绍如何使用 C# 进行 DataGridView 控件的数据填充,并演示了如何根据特定条件为 DataGridView 中的行设置背景颜色。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public Form1()
        {
            InitializeComponent();
            LoadData();

        }

        private void LoadData()
        {
            DataTable tblDatas = new DataTable();
            tblDatas.Columns.Add("ID", Type.GetType("System.Int32"));

            tblDatas.Columns.Add("Name", Type.GetType("System.String"));
            tblDatas.Columns.Add("Version", Type.GetType("System.String"));
            tblDatas.Columns.Add("Age", Type.GetType("System.String"));
            tblDatas.Rows.Add(new object[] { 1, "a", "b", "12" });
            tblDatas.Rows.Add(new object[] { 2, "a", "b", "15" });
            tblDatas.Rows.Add(new object[] { 3, "a", "b", "30" });
            tblDatas.Rows.Add(new object[] { 4, "a", "b", "25" });
            tblDatas.Rows.Add(new object[] { 5, "a", "b", "30" });

            dataGridView1.DataSource = tblDatas;
        }

 private void dataGridView1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
        {
            if (e.RowIndex > -1)
            {
                int intGrade = Convert.ToInt32(this.dataGridView1.Rows[e.RowIndex].Cells["dgvAge"].Value);
                if (intGrade ==30)
                {
                    dataGridView1.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Red;
                }
                else if(intGrade==25)
                {
                    dataGridView1.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Brown;
                }
            }
        }

效果图如下:


### C# DataGridView 基于条件改变单元格颜色 为了实现基于特定条件动态更改 `DataGridView` 单元格背景色的效果,在处理数据绑定后的事件或是绘制过程中加入逻辑判断是常见做法之一[^1]。 当希望依据单元格内的数值来调整显示样式,可以重载 `CellFormatting` 事件。下面是一个简单的例子展示如何根据订单数量的不同范围设置不同的背景色彩: ```csharp private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e) { // 检查当前列是否为目标列 "OrderQuantity" if (this.dataGridView1.Columns[e.ColumnIndex].Name == "OrderQuantity") { int orderQty; // 尝试解析单元格内容为整数 if(int.TryParse(e.Value.ToString(), out orderQty)) { // 根据不同区间应用相应颜色方案 switch(true){ case bool b when(orderQty < 10): this.dataGridView1.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Red; break; case bool b when(orderQty >= 10 && orderQty <= 50): this.dataGridView1.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.YellowGreen;break; default: this.dataGridView1.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.Green;break; } } } } ``` 上述代码片段展示了如何通过监听 `CellFormatting` 来响应并修改指定条件单元格的表现形式。这里假设存在名为 `"OrderQuantity"` 的一列用于存储订单量的数据,并根据不同阈值设置了三种可能的颜色状态表示低库存警告(红色)、正常水平(黄绿色)以及充足供应(绿色)。需要注意的是实际项目中应当替换具体的列名以匹配自己的业务场景需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值