Dev-Express-之GridControl详解(图文并茂)_第1页
Dev-Express-之GridControl详解(图文并茂)_第2页
Dev-Express-之GridControl详解(图文并茂)_第3页
Dev-Express-之GridControl详解(图文并茂)_第4页
Dev-Express-之GridControl详解(图文并茂)_第5页
已阅读5页,还剩101页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Dev Express GridControl 详解目录Dev Express GridControl 详解 1(一)原汁原味的表格展示 2(二)表格的列名配置 4(三)列数据的格式设置 7(四)分组排序汇总 14(五)设置行备注和行号 23(六)样式设置 27(七)事件 34(八)菜单 40(九)表格中的控件 55(十) BandedGridView 61(附)表格属性一览 63使用时拖拽过来,如下所示即使拖拽过来原封不动的样子:Dev Express GridControl 详解一)原汁原味的表格展示Dev 控件中的表格控件 GridControl 控件非常强大。 不过,一些细枝末节的地方

2、有时候用起来不好找挺 讨厌的。使用过程中,多半借助 Demo 和英文帮助 文档。网上具体的使用方法也多半零碎。偶遇一个 简单而且详细的使用文档。好记性不如烂笔头!转 载过来,整理整理发出来做个记录,总共有十个小 节。做的非常精细,非常感谢原作者。插件所在位置在程序中写入构建一个表格的代码:csharp view plaincopyprint?1. private DataTable InitDt()2. 3. DataTable dt = new DataTable("个人简历 ");4. dt.Columns.Add("id",typeof(int);

3、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

4、, "东大街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, &

5、quot;钱八", 0, "北大街5 号 ", " 上网 , 逛街 , 看书 , 游戏 ", "" );14.dt.Rows.Add(new object 1, "赵九", 1, "中大街1 号 ", " 看书 , 逛街 , 游戏 ", "" );15.return dt;16.17.<P> </P>书写 gridControl1 绑定数据方法:csharp view plaincopyprint?1.private vo

6、id BindDataSource(DataTable dt)2.3./ 绑定 DataTable4.gridControl1.DataSource = dt;5./ 绑定 DataSet6./gridControl1.DataSource = ds;7./gridControl1.DataMember = "表名 "8.程序调用: BindDataSource(InitDt(); 呈现结果如下:二) 表格的列名配置点击 Run Designer 控件上的按钮,弹出视图设计窗口:列配置:我们配置完列名后,会发现设计视图发生了变化:运行结果:三) 列数据的格式设置csharp

7、1.2.dt.Columns.Add("数据 ",typeof(decimal);为了测试方便,我们加入新的 3 列,格式分别是数据,时间,字符串。代码增加下列部分:view plaincopyprint?/ 格式增加5.17:52dt.Rows.Add(new object 1, " :55","#" );张三", 1,"东大街 6 号 ","看书 ","",-52.874,"2011-8-56.dt.Rows.Add(new object 1, &qu

8、ot;王五", 0,"西大街 2 号 ","上网,游戏","", -37.257,"2011-8-517:52:55" );7.dt.Rows.Add(new object 1, "李四", 1,"南大街 3 号 ","上网,逛街","", -54.254,"2011-8-9dt.Columns.Add("4.17:52:55" );时间 ",typeof(DateTime); 自定义

9、",typeof(string);3.dt.Columns.Add("8.dt.Rows.Add(new object1,"钱八", 0," 北大街 5 号"," 上网, 逛街,看书,游戏","",-35.127,"2011-8-917:52:55" );9.dt.Rows.Add(new object 1,"赵九", 1," 中大街 1号"," 看书, 逛街,游戏","",-29.548,&qu

10、ot;2011-8-920:52:55" );给 gridControl1 增加 3 列,对应上述三列。 数据:具体数据公式可以查看输入控件的 MASK 设置器,里面有全部的格式公式:运行结果:时间:自定义:事件转换:概念明确:1. gridControl1 的每一列原始数据是 Value ,但是显示数据是 DisplayText ,默认 DisplayText 的值即是 Value 通过 DisplayFormat 转换之后的值。2. gridControl 下的事件一般是包含表格 GridView 切换,点击,更改的事件,用的不多;每一个 GridView 下的事件包含行列处理,

11、 菜单显示, 分组排序等事件, 我们常用。(所有在使用事件时, 一定要明确是 control 事件还是 view 事件)GridView 存在事件:自定义列显示事件增加事件:csharpview plaincopyprint?1.privatevoidgridView1_CustomColumnDisplayText(objectsender,DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgse)2.3.if(e.Column.FieldName ="sex")4.5.switch(e.Value.

12、ToString().Trim()6.7.case"1":8.e.DisplayText = " 男 "9.break;10.case"0":11.e.DisplayText = "女 "12.break;13.default:14.e.DisplayText = ""15.break;16.17.18.显示结果:四)分组排序汇总分组: 按时间分第一组:按性别分第二组:Column proQr:es | 'Zdunn optbns 1 -it9f cptixs®l/11 Opt

13、onsFirAlcwautoH曰,川bwRUcb Inipk汶HdteSjRFi讪4日祓计(Name)gridColumn3GGreratef/emberTrieMcdfiersBBSl*J(AfpIcatDnsettngs;CouirEd:(无)FddNamesexRddNmCrtGrojfWeeLGrup?icto.|11GfODlnterwDetauftSh3'/;lrt)jur(£<pre5SicrMeruFate£rrtWrrfeOetautScrtCrdorNcno 5【冋 YlltmOt?vExp!esr.XUdGtd.(yidCdunnajTi

14、iiwrylttm<Nul>iJrbDurcEHptessbniJrb3urcT<DeEOjnc日外現 AppscranceCelApp5ctan:eUJ ApceaancefeacfefPt»cran:eCaqtnn性别CiEtcmeabDrCaDtcnV44GrouplndexGets a sets te wu9 soeof/riQ whether the cdunnoait naroicinQ rd a: 止 le*el.显示结果:高级设置:将所有组展开代码: gridView1.ExpandAllGroups(); 显示结果:自定义组名, GridView

15、级事件增加事件: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() +

16、 "行 " +GridGroupRowInfo.EditValue.ToString();5. 显示结果:注意:每一行都有一个 RowHandle 属性,普通行的 RowHandle 为非负整数,从 0 开始;组行 排序: 排序设置显示结果:汇总: 汇总数据列设置注意:汇总结果是显示在 Footer 面板中的, gridControl 中的 Footer 面板默认是不显示的,所以如果要汇 总数据,那么必须先设置 Footer 面板显示。E *9* FHm th 冃 E|r¥吾 ipes 蓉 *卫 2K和引>>-¥osharp 一 view p

17、-aincopyprinr?数据", gridColumn7,1. gridView1.GroupSummary.Add(DevExpress.Data.SummaryItemType.Sum, 计:0");结果显示五)设置行备注和行号备注显示设置设置备注字段显示结果:可以写入按键事件 F3 ,用以开关备注显示csharp view plaincopyprint?1. private void Form4_KeyUp(object sender, KeyEventArgs e)2. 3. if (e.KeyCode = Keys.F3)4. 5. gridView1.Opt

18、ionsView.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

19、 " + e.RowHandle.ToString();6. 7. 8. gridView1.IndicatorWidth = 70;显示结果六)样式设置表格样式:全局设置1 Alm心)rcPb 衍 qA1 oi/rn| itfRpsiircAlCWFlTOrTfUOAlrwCm”TflRAlo/'XId Hd«<oUn n./MwzRoaSz nqTrueAlrw/SortTrue |Op7i:n$Cu$torrizat on OptionsFl OpthnsFha/iof曰AllowPartialRprirawOnScrnllingr AliteiFx|)

20、aiiciAllGroi ips9 AiitnPn|Milafproliaiw AllowcolumnMoving, AllowcolumnRgiztig. AlowHlter, AltowGroup. AllowQi 杲否尤许 杲否允许 杲否允许 是否允许 是否允许列 長否农总勺I杲否允询列田 optbnsoetdAlOA-ZcornDtJ; ErVvwMocfeSmirtDe:alExfndQ Opti3n5FherAloACclunrMJfilterLft, /iltx'vFiterEdtor, AlfcsvMUAhcrLEtFl OptfansHntShr*X>lHnt&

21、#187; ShowCoLnmHrHHht、ShowFcnlRiHnts田 Op:l3n5L»yCUtSlcreMQSBn筋 stcrmusuEMPo飞 Op:cn5l>cnuEnadcColurnlDnj, ErobeFcotcrfnu. ErabcGrzuDPdMznu, SlowDteTrcGcx(t OptbnsKYitionAut-MVPonFbnji/ 1 CffrpP<jplrivitinn/ UspTaby田 oixQnspmAutz-Wdth, Expand/MLroucCi RntFootor, rrniGrzupFcow, Princnoxtoh R

22、in:Hcrzti OptfanstelKtionEnadeApcearanceFoojsedZel. EnabeAopcar=ncerocu5tdRDxv. &abeApeanceHicCniiminAiitoWidth. SliovrCdliMiinHpfidR-s, StunwDPtlRultons, SliowFootpr,R) OptlDnsVtevr日«>+(Ndrre)Stigc 如加 mWModficr;B田(Appkaconsettings)Tean外叢H ;'nnr.-rrnrnOutionsCustomizdtionPiovdes dL弓弐

23、 tn the Vrw's custorriMon options.oridViPwl TlUd Private<Nul>Dnvl-xnrrw; JCfr.Kinri.vinw,;.f>ridJiririVinwAnnnrnnrn/; Optio ns C»ptionsBehavi(r OptionsCustomzation0 GptionsDerai田 CptionsFilter C»ptionsHirt CctionsLoutCiptionsMenuEnableCalurrnMenuFalseEnableFootEffvlenjFalseEna

24、ble&oupaneMenuFalseShowDateTimeGroupInterx all ternsTrteShowGroupSortSummaryltemsTrueShowGrDup&jmrraryEditor:temFalseAllowPartialRedrawOnScrolling p AutoExpandAllGroups, Auto AllowColumnMoving, AllowColumnResizingt AllowFilter, Alo AlIcwZoxnDetaiL EnableMasterViewMode, ShowDetailTabs, SmartO

25、 AlIcwCdumrMRUFilterList, AlowFilterEditor, AlowlRUFiterList ShowCellHints, ShowColurrnHeaderHints, ShovFooterHnts StcreDataSettino5> StDreVsualODtionsShowDateTimeGroupIntervalltems, ShowGroupSortSummar*点击列点击朝一*点击组面板是否显示菜单 C»ptionsNavjgato n GptionsPrrit C»ptionsSetecticn CptionsView 日设

26、计AuToMoveRcwFocus, UseCfficePageNavigation, UssTatKey Au:oWidth, ExpandAllSroups, RintFooter, PrintGroupFooter, PrintHEnable/ippearanceFocjsed匚ell, EnabeAppearanceFocusedRow, EnaColumn Auto Width, Sho wColumnHeaders f ShowDetailButtor(Name)GeneratefemlerModifiers孩左grid View 1True Prixate (4pplicatio

27、nSet:ings)Tag<NjII>外現EJ ZippydrdriedDevExpre.X traGrid Viwws Grid .GridViewAppeardmesDpvFxnrp.Xtr-iGriri.Views .Grid .GridVjpwPrintAnnparAnrRSFl £nnP3r AnrAPdrt例子:例子:列样式:只作用于当前的列通用样式:外观设定注意:样式设定都是相同的, Appearance 前缀。七)事件csharp view plaincopyprint?1. <SPAN style="WHITE-SPACE: pre&qu

28、ot;> </SPAN>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

29、.17./ 鼠标的坐标18.19.if (e.RowHandle > 0)20.21./ 点击的行号22.23.if (e.CellValue != null)24.25./ 点击的单元格中的值26.27.if (e.Column != null)28.29./ 点击的单元格所属列信息3.<SPAN style="WHITE-SPACE: pre"> </SPAN>private void gridView1_RowClick(object sender,DevExpress.XtraGrid.Views.Grid.RowC

30、lickEventArgs e)34.35.if (e.Button = MouseButtons.Left)36.37./ 鼠标的那个按钮按下38.39.if (e.Clicks = 2)40.41./ 鼠标点击次数42.43.if (e.Delta > 0)44.45./ 鼠标滚轮滚动方向46.47.if (e.X > 0 & e.Y > 0)48.49./ 鼠标的坐标50.51.if (e.RowHandle > 0)52.53./ 点击的行号55.重新绘制列样式事件: gridView1_CustomDrawCell代码:csharp view plai

31、ncopyprint?1. private void gridView1_CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e)2. 3. if (e.Column.FieldName = "数据 ")4. 5. GridCellInfo GridCellInfo = e.Cell as GridCellInfo;6. if (GridCellInfo.IsDataCell && double.Parse(GridCellInfo.C

32、ellValue.ToString() <= -30)7. e.Appearance.BackColor = Color.Yellow;8. else if (GridCellInfo.IsDataCell && double.Parse(GridCellInfo.CellValue.ToString() > -309. && double.Parse(GridCellInfo.CellValue.ToString() <= -50)10. e.Appearance.BackColor = Color.Green;11. else if (Gr

33、idCellInfo.IsDataCell && double.Parse(GridCellInfo.CellValue.ToString() > -50)12. e.Appearance.BackColor = Color.Red;13. 14. 重新计算备注事件: gridView1_CalcPreviewText代码:csharp view plaincopyprint?private void gridView1_CalcPreviewText(object sender,1.DevExpress.XtraGrid.Views.Grid.CalcPreviewTe

34、xtEventArgs e)2.3.DataRow dr = gridView1.GetDataRow(e.RowHandle);4.e.PreviewText = dr"name".ToString() + " : " + dr"aihao".ToString();注意:GridView 中大多数事件我们都会并且必须用到e这个参数,我们可以从 e 这个参数中获取很多信息,包括单元格、列、行、表格、 GridControl 的信息。我们要根据事件的意义来了解这个 e 是单元格级别的, 或是行级别的,或是列级别的等,因为我们可以获取 e

35、 的层级以上的信息,层级以下的信息就不能获取了。 e 中的属性都是大同小异,其中最常用的是 e.RowHandle 这个属性,它代表行号的意思,通过 gridView1. GetDataRow (e.RowHandle) 方法可以获得这一行的数据行 DataRow ;并以此来做很多操作。 上述我们也说过组行的 RowHandle 为负数,我们通过 GetDataRow 获取数据行是错误的,这时我们通过 gridView1. GetDataRowHandleByGroupRowHandle (e.RowHandle); 方法来转化, 这时得到的数据行是该组 的第一行数据。在此我们需特别注意。如果

36、加入上述转换,我们选择数据时每组第一行数据就会重复,我 们要做去重复处理。皮肤设置八)菜单菜单控件拖入窗口中显示如下nua|A|dndod 冨視(罗耳)翌#醫旨 I js fo Huo jSuo dptiYjr q 十"躺哼W兀q e laiiedrLdoi设置 barManager设置 controller增加菜单项弹出配置窗口般菜单项设置对应属性如下:对应事件:选择菜单项设置子菜单项设置事件同上,是否可见同上。是否可见同上,很少去写他的点击事件,一般都写的是他的子菜单中点击事件。 编辑菜单项设置ForaSr:lexiZdit| 5 CkeckSditDtUZditstrrcCus

37、toBazatxon7:r.<Z3i tCr.HBozEdi tTzdtiis Comrards3BntbrliitLaSpiildi t入捽件ItToobcts:InajeTontoBcxEdttPo”p lenu EiitrPicHr “和 tNericZdi tRtdieSr 呵KyzrLiditP 产p:onQ si&4rE ii tAO-1£)E电ttg (BartuttorJten)Chxk OarCLvJclten)月 E五 (EarE<litItn)L:nkContaiaer (B arLinM. ont ur.»rl ten)Lv$e

38、lullg (XarLttr(e£utt jr(I;en)String list 3«rLizClcn)Mdi *hildr*® list (EtTKiiCXil stltn)Itolars list (BarrcoUarslis Jt*Ti)Ir¥9je?dttNtrdxEiiitrojres star, ontrolM ir (UvvTr op 轩 sD a Comu !CelcrBditIrickBontrolLt氐 “x dfttxCcnU til2 ft -<i"r n +R vCcr t":菜单分组设置Cust os

39、ization.T o olb ars CommandsToqPopup lexra EditorNewb&rSublteibarEdi titbeLrldi tit(Add |D«f&ult styleI«xt Only (Alv ays)Text Only (1 n Menus)7 Visible7 Most recently used分组Cust osization.T oolbzrs ConorrvandsClose*-s S迅"uu善】二帛s萼g舌岩3寻h忘協S聖我S »小尽 fc?4eQikfni pfOpeitcs Cofa

40、tm optipn$ II Piter wttn$F1m1Ffe£B4 jW E 戶善w1a sA j Vr'irc_Iveffisfr悭*(匸)选择完成控件后,可用 +号点开 ColumnEdit 列,改控件的类型是 RepositoryItem 类型的,其相应的属性和 相应的控件属性是类似的Cobmn orooetes CoUm optons | FterootonsEJtii ii / aDspfryVdUGrayedADspteiVdwUncbected3 EdtfocratEdtValeChriQeeAfrgModeXutExportN 曲WufcFdFocusRe

41、cFeseGneiteMertTrue6 神 AilmentCentrS LookAndFeeiDevExpress丄 ookAndFedUserlookAndfedMod伽PrifltehJS* hJTextPrtueChecked PKti/eGnyed hctureUnchedeflY«beCcVw PQPCHI:;/ReMkameGets or sets the 吋 of the toUMse fee fisqred to tte current cobm.VaLeCheckedTrue8ValeGrayed<Nub 沁.s-WttmetodoSroupIndx 加 dOn"Tao -UsePreaagrourtFCeiWeCkitk(I)>1popfg Crtjrrogs Ftergpk01庚你哥耐w wenr 莎 McdtBictyhfOQaUdWOKrmrtF分力尊TDlt IXIAMCW 希加MTat h(t«rtOifCWjWeuZC UoCrvehdciWUCCTOUMMSamVftbeCMud “HAXue

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论