资源预览内容
第1页 / 共108页
第2页 / 共108页
第3页 / 共108页
第4页 / 共108页
第5页 / 共108页
第6页 / 共108页
第7页 / 共108页
第8页 / 共108页
第9页 / 共108页
第10页 / 共108页
亲,该文档总共108页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
GridControl 详解(一)原汁原味的表格展示Dev 控件中的表格控件 GridControl 控件非常强大。不过,一些细枝末节的地方有时候用起来不好找挺讨厌的。使用过程中,多半借助 Demo 和英文帮助文档。网上具体的使用方法也多半零碎。偶遇一个简单而且详细的使用文档。好记性不如烂笔头!转载过来,整理整理发出来做个记录,总共有十个小节。做的非常精细,非常感谢原作者。插件所在位置使用时拖拽过来,如下所示即使拖拽过来原封不动的样子:在程序中写入构建一个表格的代码:csharp view plaincopyprint?1. private DataTable InitDt() 2. 3. DataTable dt = new DataTable(个人简历); 4. dt.Columns.Add(id,typeof(int); 5. dt.Columns.Add(name, typeof(string); 6. dt.Columns.Add(sex, typeof(int); 7. dt.Columns.Add(address, typeof(string); 8. dt.Columns.Add(aihao, typeof(string); 9. dt.Columns.Add(photo, typeof(string); 10. dt.Rows.Add(new object 1, 张三, 1, 东大街 6 号, 看书, ); 11. dt.Rows.Add(new object 1, 王五, 0, 西大街 2 号, 上网,游戏, ); 12. dt.Rows.Add(new object 1, 李四, 1, 南大街 3 号, 上网,逛街, ); 13. dt.Rows.Add(new object 1, 钱八, 0, 北大街 5 号, 上网,逛街,看书,游戏, ); 14. dt.Rows.Add(new object 1, 赵九, 1, 中大街 1 号, 看书,逛街,游戏, ); 15. return dt; 16. 17. 书写 gridControl1 绑定数据方法:csharp view plaincopyprint?1. private void BindDataSource(DataTable dt) 2. 3. /绑定 DataTable 4. gridControl1.DataSource = dt; 5. /绑定 DataSet 6. /gridControl1.DataSource = ds; 7. /gridControl1.DataMember = 表名; 8. 程序调用:BindDataSource(InitDt();呈现结果如下:GridControl 详解(二)表格的列名配置点击 Run Designer 控件上的按钮,弹出视图设计窗口:列配置:我们配置完列名后,会发现设计视图发生了变化:运行结果:GridControl 详解(三)列数据的格式设置 为了测试方便,我们加入新的 3 列,格式分别是数据,时间,字符串。代码增加下列部分:csharp view plaincopyprint?1. /格式增加 2. dt.Columns.Add(数据,typeof(decimal); 3. dt.Columns.Add(时间,typeof(DateTime); 4. dt.Columns.Add(自定义,typeof(string); 5. dt.Rows.Add(new object 1, 张三, 1,东大街 6 号,看书,-52.874,2011-8-5 17:52:55,# ); 6. dt.Rows.Add(new object 1, 王五, 0,西大街 2 号,上网,游戏, -37.257,2011-8-5 17:52:55 ); 7. dt.Rows.Add(new object 1, 李四, 1,南大街 3 号,上网,逛街, -54.254,2011-8-9 17:52:55 ); 8. dt.Rows.Add(new object 1, 钱八, 0,北大街 5 号,上网,逛街,看书,游戏,-35.127,2011-8-9 17:52:55 ); 9. dt.Rows.Add(new object 1,赵九, 1,中大街 1 号 ,看书, 逛街,游戏,-29.548,2011-8-9 20:52:55 ); 给 gridControl1 增加 3 列,对应上述三列。数据:具体数据公式可以查看输入控件的 MASK 设置器,里面有全部的格式公式:运行结果:时间:自定义:事件转换:概念明确:1. gridControl1 的每一列原始数据是 Value,但是显示数据是 DisplayText,默认 DisplayText 的值即是 Value 通过DisplayFormat 转换之后的值。2. gridControl 下的事件一般是包含表格 GridView 切换,点击,更改的事件,用的不多;每一个 GridView 下的事件包含行列处理,菜单显示,分组排序等事件,我们常用。(所有在使用事件时,一定要明确是 control 事件还是 view 事件)GridView 存在事件:自定义列显示事件增加事件:csharp view plaincopyprint?1. private voidgridView1_CustomColumnDisplayText(objectsender, DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgse) 2. 3. if(e.Column.FieldName =sex) 4. 5. switch(e.Value.ToString().Trim() 6. 7. case1: 8. e.DisplayText = 男; 9. break; 10. case0: 11. e.DisplayText = 女; 12. break; 13. default: 14. e.DisplayText = ; 15. break; 16. 17. 18. 显示结果:GridControl 详解(四)分组排序汇总 分组:按时间分第一组:按性别分第二组:显示结果:高级设置:将所有组展开代码:gridView1.ExpandAllGroups();显示结果:自定义组名,GridView 级事件 增加事件:csharp view plaincopyprint?1. private void gridView1_CustomDrawGroupRow(object sender, DevExpress.XtraGrid.Views.Base.RowObjectCustomDrawEventArgs e) 2. 3. GridGroupRowInfo GridGroupRowInfo = e.Info as GridGroupRowInfo; 4. GridGroupRowInfo.GroupText = 第 + (e.RowHandle).ToString() + 行 + GridGroupRowInfo.EditValue.ToString(); 5. 显示结果:注意:每一行都有一个 RowHandle 属性,普通行的 RowHandle 为非负整数,从 0 开始;组行排序:排序设置显示结果:汇总:汇总数据列设置注意:汇总结果是显示在 Footer 面板中的,gridControl 中的 Footer 面板默认是不显示的,所以如果要汇总数据,那么必须先设置 Footer 面板显示。显示结果: 组计:代码:csharp view plaincopyprint?1. gridView1.GroupSummary.Add(DevExpress.Data.SummaryItemType.Sum, 数据, gridColumn7, 组计:0); 结果显示GridControl 详解(五)设置行备注和行号 备注显示设置设置备注字段显示结果:可以写入按键事件 F3,用以开关备注显示csharp view plaincopyprint?1. private void Form4_KeyUp(object sender, KeyEventArgs e) 2. 3. if (e.KeyCode = Keys.F3) 4. 5. gridView1.OptionsView.ShowPreview = !gridView1.OptionsView.ShowPreview; 6. 7. 行号显示要用到的事件:代码:csharp view plaincopyprint?1. private void gridView1_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e) 2. 3. if (e.Info.IsRowIndicator) 4. 5. e.Info.DisplayText = Row + e.RowHandle.ToString(); 6. 7. 8. gridView1.IndicatorWidth = 70; 显示结果GridControl 详解(六)样式设置 表格样式:全局设置例子:例子:列样式:只作用于当前的列通用样式:外观设定注意:样式设定都是相同的,Appearance 前缀。GridControl 详解(七)事件 csharp view plaincopyprint?1. private void gridView1_RowCellClick(object sender, DevExpress.XtraGrid.Views.Grid.RowCellClickEventArgs e) 2. 3. if (e.Button = MouseButtons.Left) 4. 5. /鼠标的那个按钮按下 6. 7. if (e.Clicks = 2) 8. 9. /鼠标点击次数 10. 11. if (e.Delta 0) 12. 13. /鼠标滚轮滚动方向 14. 15. if (e.X 0 & e.Y 0) 16. 17. /鼠标的坐标 18. 19. if (e.RowHandle 0) 20. 21. /点击的行号 22.
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号