DevExpress中的gridcontrol方法和使用(Winfrom)2事件

继上次的文章之后,补充来了。这次主要是总结一些常见的属性和事件结合的效果

二、事件和属性:

1、表格行序号:

//设置空白行的宽度
gridView.IndicatorWidth = 40;
//添加事件
gridView.CustomDrawRowIndicator += new DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventHandler(gridView1_CustomDrawRowIndicator);
public static void gridView1_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e)
        {
            if (e.Info.IsRowIndicator && e.RowHandle >= 0)
            {
                e.Info.DisplayText = (e.RowHandle + 1).ToString();
            }
        }

运行效果如图显示:

2、行背景颜色变化,字体颜色变化:

因为我使用的gridcontrol是通过DataTable绑定的形式,且gridcontrol中没有关于 行 的直接相关属性,所以想要改变行或者单元格的颜色需要借助事件:

//改变行颜色
gridView.RowStyle += new DevExpress.XtraGrid.Views.Grid.RowStyleEventHandler(gridView_RowStyle);
private void gridView_RowStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowStyleEventArgs e)
        {
            if (e.RowHandle > -1)
            {
                GridView gridView = ((GridView)sender);
               
                    
                        if (e.RowHandle==0)
                            e.Appearance.BackColor = Color.Red; 

            }

        }
//改变单元格颜色
gridView.RowCellStyle += new RowCellStyleEventHandler(gridView_RowCellStyle);
private void gridViewData_RowCellStyle(object sender, RowCellStyleEventArgs e)
        {
            if (e.RowHandle > -1)
            {
                GridView view = sender as GridView;
               
                if (RowIndex.Count > 0)
                {
                    if (RowIndex.Contains(e.RowHandle))
                    {
                        if (e.Column.FieldName == view.Columns[unitType].FieldName)
                        {
                            e.Appearance.BackColor = Color.Gold;
                        }
                    }
                    else
                    {
                        if (e.Column.FieldName == view.Columns[unitType].FieldName)
                        {
                            e.Appearance.BackColor = Color.White;
                        }
                    }
                }
                else
                {
                    if (e.Column.FieldName == view.Columns[unitType].FieldName)
                    {
                        e.Appearance.BackColor = Color.White;
                    }
                }


            }
        }

在这提一下,如果是需要改变某一列的颜色,属性可以直接使用:

gridView.Columns[0].AppearanceCell.BackColor = Color.White;

3、允许相同的表格列可以合并:

//首先需要设置属性
//设置表格的纵向单元格可以合并(true:表示可以)
 gridView.OptionsView.AllowCellMerge = true;

//然后编写事件
this.bandedGridView1.CellMerge += new DevExpress.XtraGrid.Views.Grid.CellMergeEventHandler(this.bandedGridView1_CellMerge);
private void bandedGridView1_CellMerge(object sender, DevExpress.XtraGrid.Views.Grid.CellMergeEventArgs e)
        {
            //需要合并单元格的列字段名称
            string BadTimeColumnFieldName = "RowHeaderAll";
            //合并单元格
            if (e.Column.FieldName == BadTimeColumnFieldName)
            {
                e.Merge = true;
                e.Handled = true;
                //相同的值合并,不同值不合并可以在这再写判断

            }
            else
            {
                //其他列不合并
                e.Merge = false;
                e.Handled = true;
            }
        }

后续的补充会接着编写,有兴趣的小伙伴可以关注我,需要转载的小伙伴请附上链接哦!!!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值