DataGrridView 当前行显示不同颜色

本文介绍了一种方法,即通过DataGridView控件的RowPrePaint事件来改变选中行的颜色,包括前景色和背景色的变化。这种方法使得所选行与未选行在视觉上更加明显。

如果想让选中DataGridview的行显示不同颜色,就要通过DataGridview控件RowPerpaint事件中重新设置所选行的DefauleCellStyle属性来实现

   private void dataGridView1_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e)
        {
            //判断 当前索引值是否大于等于DataGridview中行的个数减去1
            if (e.RowIndex>=dataGridView1.Rows.Count - 1)
            {
                return;
            }
            //定一个前景颜色
            Color forecolor = new Color();
            //定义一个背景颜色
            Color backcolor = new Color();

            //var 所有类的值类型  object 所有类的引用类型
            var row = dataGridView1.Rows[e.RowIndex];
            //如果 当前行等于表格当前行
            if (row==dataGridView1.CurrentRow)
            {   
                //如果当前行默认的前景颜色不等于白色
                if (row.DefaultCellStyle.ForeColor != Color.White)
                {

                    forecolor = row.DefaultCellStyle.ForeColor;
                    //当前行默认前景颜色等于白色
                    row.DefaultCellStyle.ForeColor = Color.White;
                }

                if (row.DefaultCellStyle.BackColor != Color.Blue)
                {
                    backcolor = row.DefaultCellStyle.BackColor;
                    row.DefaultCellStyle.BackColor = Color.Blue;
                }
               
            }
                //如果当前行不等于表格的行
            else
            {
                //当前行的默认背景颜色等于定义的变量颜色

                row.DefaultCellStyle.BackColor = backcolor;
                row.DefaultCellStyle.ForeColor = forecolor;
            }
           

 

        private void dataGridView1_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e)
        {
            //判断 当前索引值是否大于等于DataGridview中行的个数减去1
            if (e.RowIndex>=dataGridView1.Rows.Count - 1)
            {
                return;
            }
            //定一个前景颜色
            Color forecolor = new Color();
            //定义一个背景颜色
            Color backcolor = new Color();

            //var 所有类的值类型  object 所有类的引用类型
            var row = dataGridView1.Rows[e.RowIndex];
            //如果 当前行等于表格当前行
            if (row==dataGridView1.CurrentRow)
            {   
                //如果当前行默认的前景颜色不等于白色
                if (row.DefaultCellStyle.ForeColor != Color.White)
                {

                    forecolor = row.DefaultCellStyle.ForeColor;
                    //当前行默认前景颜色等于白色
                    row.DefaultCellStyle.ForeColor = Color.White;
                }

                if (row.DefaultCellStyle.BackColor != Color.Blue)
                {
                    backcolor = row.DefaultCellStyle.BackColor;
                    row.DefaultCellStyle.BackColor = Color.Blue;
                }
               
            }
                //如果当前行不等于表格的行
            else
            {
                //当前行的默认背景颜色等于定义的变量颜色

                row.DefaultCellStyle.BackColor = backcolor;
                row.DefaultCellStyle.ForeColor = forecolor;
            }
           

 

转载于:https://www.cnblogs.com/xiaowie/p/8651662.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值