【WinForm+DevExpress】GridView为表头添加筛选功能

本文介绍如何使用 DevExpress 的 GridControl 实现自定义效果。主要包括新建 DevExpressForm 和 GridControl,设置停靠方式;创建测试数据并绑定 GridView 数据源;设置 CustomDrawColumnHeader 事件来自定义表头样式。

效果图

实现:

第一步:新建一个DevExpress Form,加入一个GridControl,设置父容器停靠

第二步:创建测试数据,并且设置GridView数据源

 public XtraGridCustomDrawSortFilterButtonsDemo()
        {
            InitializeComponent();

            List<Cars> CarList = new List<Cars>();
            Cars data1 = new Cars();
            data1.Make = "Audi";
            data1.Model = "A6";
            data1.Automatic = true;
            CarList.Add(data1);

            Cars data2 = new Cars();
            data2.Make = "Audi";
            data2.Model = "RS4";
            data2.Automatic = false;
            CarList.Add(data2);

            Cars data3 = new Cars();
            data3.Make = "Benz";
            data3.Model = "G63";
            data3.Automatic = true;
            CarList.Add(data3);

            gridControl1.DataSource = CarList;
        }

第三步:设置GridView的CustomDrawColumnHeader事件

 private void gridView1_CustomDrawColumnHeader(object sender, DevExpress.XtraGrid.Views.Grid.ColumnHeaderCustomDrawEventArgs e)
        {
            if (e.Column == null) return;


            Rectangle rect = e.Bounds;
            ControlPaint.DrawBorder3D(e.Graphics, e.Bounds);
            Brush brush = e.Cache.GetGradientBrush(rect, Color.White, Color.LightCyan,
                e.Column.AppearanceHeader.GradientMode);
            rect.Inflate(-1, -1);
            e.Graphics.FillRectangle(brush, rect);
            e.Appearance.DrawString(e.Cache, e.Info.Caption, e.Info.CaptionRect);


            //为表头的每一列添加筛选按钮
            foreach (DrawElementInfo info in e.Info.InnerElements)
            {
                ObjectPainter.DrawObject(e.Cache, info.ElementPainter, info.ElementInfo);
            }
            e.Handled = true;
        }

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值