写在前面,Dev控件已经很久了,功能也很强大,截止到现在我编写文档出来的Dev的版本已经到了14.1了,看了Demo真的很强大,效果也很好,结合自己这一个月开发,分享一下自己研究过后的经验,不让大家走更多的弯路

  • DevExpress安装顺序
  • GridControl基本样式设置
  • GridControl常用事件和描述
  • GridControl右键菜单
  • GridControl全选和反选
  • GridControl添加小计功能
  • GridControl固定表头

    1.安装从未如此简单

    Dev的安装文件已经放大百度云中方便大家下载:DevExpress 12.2.7,下载后按照图片数字顺序依次安装,这就是Dev 12.2.7,你值得拥有。

    if (bandedGridView1.GetFocusedDataRow() == null) return;//运单编号var columnValue= bandedGridView1.GetFocusedRowCellValue("绑定列字段名称").ToString();

    注意事项:使用VS2012和2010搭配DevExpress 12.2.7这个版本一起开发是最好的,工具箱暂时无法导入VS2013

    2.基本样式设置,你会吗?

    面对第一次使用GridControl,搞不懂GridControl下面为什么有一堆的GridView呢?后来想想,原来GridControl是一个大容器,下面有很多视图,那么就是操作视图,下面是我的一些常用样式设置。

            bandedGridView1.IndicatorWidth = 40; //自增列宽度bandedGridView1.OptionsView.ColumnAutoWidth = false; //自动调整列宽,使所有列的宽度和视图的宽度匹配bandedGridView1.OptionsCustomization.AllowSort = false;//禁止用户对数据进行排序操作bandedGridView1.OptionsCustomization.AllowColumnResizing = false; //禁止各列头改变列宽bandedGridView1.VertScrollVisibility = ScrollVisibility.Auto; //显示垂直滚动条bandedGridView1.HorzScrollVisibility = ScrollVisibility.Auto; //显示水平滚动条bandedGridView1.OptionsMenu.EnableColumnMenu = false; //禁止列头上的菜单bandedGridView1.OptionsMenu.EnableFooterMenu = false; //禁止页脚上的菜单bandedGridView1.OptionsMenu.EnableGroupPanelMenu = false; //禁止分组面板上的菜单bandedGridView1.OptionsNavigation.UseTabKey = false; //不使用TAB/SHIFT+TAB移动焦点bandedGridView1.OptionsBehavior.Editable = false;//不允许编辑bandedGridView1.OptionsBehavior.ReadOnly = true;//只读

   3.这些事件你会常用

CustomDrawRowIndicator:DGV显示自增行号

            e.Appearance.TextOptions.HAlignment = HorzAlignment.Far;if (e.Info.IsRowIndicator){if (e.RowHandle >= 0){e.Info.DisplayText = (e.RowHandle + 1).ToString(CultureInfo.InvariantCulture);}else if (e.RowHandle < 0 && e.RowHandle > -1000){e.Info.Appearance.BackColor = Color.AntiqueWhite;e.Info.DisplayText = "G" + e.RowHandle;}}

RowCellStyle:GridView隔行变色

 bandedGridView1.Appearance.OddRow.BackColor = Color.White; // 设置奇数行颜色 // 默认也是白色 可以省略 bandedGridView1.OptionsView.EnableAppearanceOddRow = true; // 使能 // 和和上面绑定 同时使用有效 bandedGridView1.Appearance.EvenRow.BackColor = Color.FromArgb(255, 250, 205); // 设置偶数行颜色 bandedGridView1.OptionsView.EnableAppearanceEvenRow = true; // 使能 // 和和上面绑定 同时使用有效if (e.RowHandle == bandedGridView1.FocusedRowHandle){e.Appearance.Font = new Font("宋体", 9, FontStyle.Bold);}

View Code

    FocusedRowChanged:选中行改变绑定行数据到对应控件中

if (bandedGridView1.GetFocusedDataRow() == null) return;//判断当前选中行是否为null//返回值var columnValue= bandedGridView1.GetFocusedRowCellValue("绑定列字段名称").ToString();

     4.添加右击菜单一个很常用的功能

添加ContextMenuStrip控件,然后自定义按钮,可以找一些16*16的小图标点缀一下,很不错

这样一个右键菜单就已经绑定成功

5.GridControl全选和反选

这是一个比较难的问题,这里我结合网上寻找的资料总结了一个实体类贴上源代码

//-------------------------------------------------------------------------------------
// All Rights Reserved , Copyright (C) 2014 , ZTO , Ltd .
//-------------------------------------------------------------------------------------using System.Drawing;
using System.Windows.Forms;
using DevExpress.XtraEditors.Repository;namespace ZTO.WayBill.Utilities
{/// <summary>/// Dev GridControl 创建全选复选框////// 修改纪录//////          2014-5-30   版本:1.0 YangHengLian 创建主键,注意命名空间的排序。/// /// 版本:1.0////// <author>///        <name>YangHengLian</name>///        <date>2014-5-30</date>/// </author>/// </summary>public class DevControlHelper{/// <summary>/// 创建复选框/// </summary>/// <param name="e"></param>/// <param name="chk"></param>public static void DrawCheckBox(DevExpress.XtraGrid.Views.Grid.ColumnHeaderCustomDrawEventArgs e, bool chk){RepositoryItemCheckEdit repositoryCheck = e.Column.ColumnEdit as RepositoryItemCheckEdit;if (repositoryCheck != null){Graphics g = e.Graphics;Rectangle r = e.Bounds;DevExpress.XtraEditors.ViewInfo.CheckEditViewInfo info;DevExpress.XtraEditors.Drawing.CheckEditPainter painter;DevExpress.XtraEditors.Drawing.ControlGraphicsInfoArgs args;info = repositoryCheck.CreateViewInfo() as DevExpress.XtraEditors.ViewInfo.CheckEditViewInfo;painter = repositoryCheck.CreatePainter() as DevExpress.XtraEditors.Drawing.CheckEditPainter;info.EditValue = chk;info.Bounds = r;info.CalcViewInfo(g);args = new DevExpress.XtraEditors.Drawing.ControlGraphicsInfoArgs(info, new DevExpress.Utils.Drawing.GraphicsCache(g), r);painter.Draw(args);args.Cache.Dispose();}}/// <summary>/// 全选,反选/// </summary>/// <param name="gridView"></param>/// <param name="fieldName"></param>/// <param name="currentStatus"></param>/// <returns></returns>public static bool ClickGridCheckBox(DevExpress.XtraGrid.Views.Grid.GridView gridView, string fieldName, bool currentStatus){bool result = false;if (gridView != null){gridView.ClearSorting();//禁止排序
                gridView.PostEditor();DevExpress.XtraGrid.Views.Grid.ViewInfo.GridHitInfo info;Point pt = gridView.GridControl.PointToClient(Control.MousePosition);info = gridView.CalcHitInfo(pt);if (info.InColumn && info.Column != null && info.Column.FieldName == fieldName){for (int i = 0; i < gridView.RowCount; i++){gridView.SetRowCellValue(i, fieldName, !currentStatus);}return true;}}return result;}}
}

View Code

下面是使用步骤

窗体加载事件添加一些代码

private bool _mCheckStatus; //GridControl全选,作为全局变量,默认falseprivate void FrmInputBill_Load(object sender, EventArgs e){bandedGridView1.OptionsBehavior.Editable = false;bandedGridView1.OptionsBehavior.ReadOnly = true;var col = new BandedGridColumn { FieldName = "Check", Visible = true, VisibleIndex = 0, ColumnEdit = new RepositoryItemCheckEdit() };col.OptionsColumn.AllowEdit = true; //CheckBox可以编辑改变gridBand1.Columns.Insert(0, col);bandedGridView1.Click += bandedGridView1_Click;bandedGridView1.CustomDrawColumnHeader += bandedGridView1_CustomDrawColumnHeader;bandedGridView1.DataSourceChanged += bandedGridView1_DataSourceChanged;//这里绑定数据源
        }#region GridControl支持全选事件private void bandedGridView1_Click(object sender, EventArgs e){if (DevControlHelper.ClickGridCheckBox(this.bandedGridView1, "Check", _mCheckStatus)){_mCheckStatus = !_mCheckStatus;}}private void bandedGridView1_CustomDrawColumnHeader(object sender, ColumnHeaderCustomDrawEventArgs e){if (e.Column != null && e.Column.FieldName == "Check"){e.Info.InnerElements.Clear();e.Painter.DrawObject(e.Info);DevControlHelper.DrawCheckBox(e, _mCheckStatus);e.Handled = true;}}private void bandedGridView1_DataSourceChanged(object sender, EventArgs e){GridColumn column = this.bandedGridView1.Columns.ColumnByFieldName("Check");if (column != null){column.Width = 40;column.OptionsColumn.ShowCaption = false;column.ColumnEdit = new RepositoryItemCheckEdit();}}#endregion

全选和反选

 6.添加小计功能第一步

第二步加载完数据之后绑定

bandedGridView1.Columns["绑定字段列名"].Summary.Add(DevExpress.Data.SummaryItemType.Count, "BILL_CODE", "总计:{0}条"); //添加小计功能,在指定的列上添加一个统计对象
删除动作修改对应的小计信息,代码如下:
bandedGridView1.Columns["绑定字段列名"].Summary[0].DisplayFormat = string.Format("小计{0}条", bandedGridView1.RowCount);
7.固定表头

记录了一些GridControl的常用代码,分享给大家,如果有兴趣的可以到我的群里进行提问,不仅包括GridControl,其他的控件我也研究了,运用到项目中

将来的你一定会感激现在拼命的自己

DevExpress GridControl功能总结相关推荐

  1. DevExpress GridControl 控件中GridView 加组,加行

    DevExpress GridControl 控件是经常会用到  加组 加行功能 扩展方法 public static class Tools {/// <summary>/// 加组// ...

  2. 小陈-Devexpress gridcontrol行内增删改操作

    Devexpress gridcontrol行内增删改操作 最近经常做winform的项目,现在接触了一个新项目,要求使用了第三方框架,就是Devexpress,因为之前没有用过这个东西,而且要实现的 ...

  3. DevExpress GridControl Gridview RepositoryItemCheckEdit复选框及获取选择行数据

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/gisdoer/article/details/49250373 DevExpress GridCon ...

  4. 实现DataGridView和DevExpress.GridControl表头全选功能

    1)DevExpress控件的GridView的实现多选操作 先讲DevExpress控件的GridView的实现,要实现的功能基本上是处理单击全选操作.重新绘制表头等操作,首先在加载第一步实现相关的 ...

  5. DevExpress打印功能 z

    一.打印功能说明: 打印功能,我们有多种实现方式,可以根据需要自行选择,我简单的总结下两种方法. (1).使用微软.net框架自带的PrintDocument,这种方式是直接借助Graphics,自行 ...

  6. C# devexpress gridcontrol 分页 控件制作

    这个小小的功能实现起来还是有一点点复杂, 分页单独一个usercontrol 出来,导致查询换页 与gridcontrol页面分离,  一般通过换页事件通知girdcontrol 做出查询 查询来说有 ...

  7. DEVexpress GridControl 属性设置

    转载:https://www.cnblogs.com/kliine/p/9246703.html 1. 如何解决单击记录整行选中的问题 View->OptionsBehavior->Edi ...

  8. DevExpress.GridControl.gridView的一些注意

    1.DevExpress控件组中的GridControl控件不能使横向滚动条有效.现象:控件中的好多列都挤在一起,列宽都变的很小,根本无法正常浏览控件单元格中的内容. 解决: gridView1.Op ...

  9. Devexpress GridControl中 repositoryItemCheckEdit作为选择列以及作为显示列的使用方法

    一.在gridcontrol列表控件中使用单选框作为选择列,这里有两种方式. 方式一:选择gridcontrol控件的Run Designer按钮,添加一列,设置该列的ColumnEdit为check ...

最新文章

  1. usaco Drainage Ditches(网络流dinic模板)
  2. 使用IDEA基于Maven搭建多模块聚合工程(springmvc+spring+mybatis整合)
  3. php 应用宝支付,U8SDK——应用宝YSDK新的支付流程
  4. ddr5内存上市时间_辣评烩:SK海力士首发DDR5内存:频率冲上5600MHz
  5. java 使用string_java中string怎么使用
  6. ssm框架搭建+easyui增删改查实现
  7. 扇贝有道180903每日一句
  8. mysql frm idb_MySQL利用frm和idb文件进行数据恢复MySQL利用frm和idb文件进行数据恢复...
  9. 蓝桥杯训练1:质数判断,同余问题
  10. 《失业的程序员》(十五):商业头脑
  11. Docker(9) 安装Oracle18c
  12. 2013年图灵奖--莱斯利·兰波特简介
  13. RuntimeError: __iter__() is only supported inside of tf.function or when eager execution is enabled.
  14. 【开源项目】X-TRACK源码分析
  15. 基于Autosar的网络安全理解
  16. 在oracle中要谨慎使用when others then(二)
  17. 亚马逊是如何颠覆商业软件高昂价格这座”柏林墙”的
  18. Android Q 强制黑暗模式(ForceDark) | 原理 实践
  19. 织梦php模板,DedeCMS的主要模板文件与功能
  20. GIS常用符号化色带(超级色带)根据python制作

热门文章

  1. getCurrentPages()
  2. 『中级篇』Docker-Stack部署投票应用(50)
  3. screen命令简介
  4. 如何使用Photoshop制作真实的尺子
  5. ios-UIButton-常用方法
  6. [原创]我的作品:我的迷宫小游戏Java版本
  7. Oracle归档日志文件(Archive Log file)
  8. 学习笔记总结(VC)
  9. Flink SQL Client讀取csv中的數據(轉載+總結)
  10. django+asyncio资料调研整合