




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
XtraGrid的关键类就是:GridControl和GridView。GridControl本身不显示数据,数据都是显示在GridView/CardView/XXXXView中。GridControl是各种View的容器。所以要控制显示,要从GridView这些类入手DevExpress控件组中的GridControl控件不能使横向滚动条有效。现象:控件中的好多列都挤在一起,列宽都变的很小,根本无法正常浏览控件单元格中的内容。解决:gridView1.OptionsView.ColumnAutoWidth属性是true,即各列的宽度自动调整,你把它设成false,就会出现了。1.1. 属性 1.1.1. UseEmbeddedNavigator1.1.2. ErrorText1.2. 事件1.2.1. RowCellStyle事件 /ae/ID312设定每个单元格格式事件,单元格存在属性值时触发可以定义不同行相同列的单元格的不同属性,如cell0,3可以编辑,而cell1,3不可编辑,若不同行相同列都不可编辑,即整列都不可编辑,则1.2.2. .CustomColumnDisplayText事件 /ae/ID312自定义列文本显示事件1.2.3. ValidateRow事件ValidateRow用于行离开时处理,列本身长度的控制是MaxLength,但这个是字符长度,通常需要按字节截取,行离开的时候字节截取就在这个事件处理;判断数据合法性也在这个事件处理,需要注意的是在之前调用View的CloseEditor()用于关闭编辑状态,如果没用这方法的话会出现有时行离开取不到之前的值最后需要刷新记录集UpdateCurrentRow()1.2.4. ValidatingEditor正在编辑离开处理,在beforeRowleave事件之前触发ValidatingEditor用于处理正在编辑离开处理,这个事件可以用来处理合法性的判断,但它只能捕捉到有值改变的情况下,如果是直接是空离开,是不触发的,如果是有值的情况再改变成空是可以触发的1.3. 方法 /wanghafan/archive/2012/02/09/2344241.html /demo_c128_i133679.html1.3.1. 选中整行例子:1.3.2. 编辑状态this.gvDetail.OptionsBehavior.Editable = true; /整个gridview的编辑状态this.gvDetail.Columns消费.OptionsColumn.AllowEdit = false; /单元格某列的编辑状态this.gvDetail.Columns消费单号.OptionsColumn.AllowEdit = false;this.gvDetail.Columns消费类别.OptionsColumn.AllowEdit = false;this.gvDetail.Columns日期.OptionsColumn.AllowEdit = false; 1.3.3. 去除Drag a Column Header Here To Group by that Column属性Gridview-Option View-Show Group Panel=false,就好了1.3.4. 在gridcontrol中添加checkbox复选框gridview-run designer-columns-选择要变成复选框的那一列-column edit-new(在这里可以选择很多类型)加载checkbox数据时,费了一点时间,checkbox的复选框怎么点击,一失去焦点是,选择的操作就无效了,问题就出在datatable的绑定上了,一定要绑定一个布尔的类型.代码是这样滴!private void FrmCreateLegend_Load(object sender, EventArgs e)IFeatureLayer pFeatureLayer;IDataset pDataset;string pName;DataTable pDatatable = new DataTable();pDatatable.Columns.Add(图层名称, System.Type.GetType(System.String);pDatatable.Columns.Add(选择, System.Type.GetType(System.Boolean);DataRow pDataRow;object rowArray = new object2;for (int i = 0; i 0) foreach (DataRow dr in dt.Rows) cmbKind.Items.Add(drKind_expense.ToString(); . combobox只读属性1 GridControl 的RepositoryItemComboBox 控件,如果需要设置“只读+下拉”方法如下:2GridControl设计器-Columns-某字段-Column properties-ColumnEdit-TextEditStyle=DisableTextEditorcmbKind.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor;1.3.6. 当我们浏览列表数据的时候,我们有时候会希望列表中的前面几列不动,而其余的几列可以用滚动条拖动显示 /4mylife/archive/2012/08/31/2665082.html。1.3.7. 显示行号this.gridView1.IndicatorWidth = 40;/显示行的序号private void gridView1_CustomDrawRowIndicator(object sender, RowIndicatorCustomDrawEventArgs e)if (e.Info.IsRowIndicator & e.RowHandle=0)e.Info.DisplayText = (e.RowHandle + 1).ToString();1.3.8. 主窗体frmMain窗体大小改变时,要保持子窗体frmExpense填充整个区域private void XfrmMain_SizeChanged(object sender, EventArgs e)fr.WindowState = FormWindowState.Normal; /必须写 fr.WindowState = FormWindowState.Maximized; 1.3.9. Devexpress GridControl GridView 点击 单元格 选中内容 /wanghafan/archive/2012/02/09/2344241.htmlGridView-OptionsBehavior-EditorShowMode设置成MouseUp 即this.gvDetail.OptionsBehavior.EditorShowMode = DevExpress.Utils.EditorShowMode.MouseUp;另外如果是treeList则设置treeList-OptionsBehavior-ShowEditorOnMouseUp为True1.3.10. GridView内置方式编辑数据,combobox,checkbox禁止编辑数据 gridView1.OptionsBehavior.Editable = False,默认是True 可编辑。Gridview内置数据编辑器显示方式 gridView1.OptionsBehavior.EditorShowMode,可选值Default/ MouseDown/MouseUp/ Click。说明:Default多选Cell相当于Click,单选Cell相当于MouseDownMouseDown在单元格内按下鼠标键时打开内置编辑器MouseUp在单元格内释放鼠标键时打开内置编辑器Click在不是编辑状态,但获得焦点的单元格中点击时打开编辑器。点击非焦点单元格时,首先会切换焦点,再点击时才打开编辑器1.3.11. GridView,内置TextEdit编辑器,点击触发事件用途:禁止输入非数字键,默认0.00,求和等待/显示编辑器,添加TextEdit的触发事件private void gvDetail_ShownEditor(object sender, EventArgs e)/单元格禁止输入非数字private void SBDH_KeyPress(object sender, KeyPressEventArgs e)/离开显示0.00private void SBDH_Leave(object sender, EventArgs e)/TextEdit类text属性值变化,计算总额private void SBDH_TextChanged(object sender, EventArgs e)完整代码如下/显示编辑器private void gvDetail_ShownEditor(object sender, EventArgs e)DevExpress.XtraEditors.TextEdit control = (DevExpress.XtraEditors.TextEdit)this.gvDetail.ActiveEditor;/当前编辑器的强制转换/为TextEdit控件添加事件if (金额 = this.gvDetail.FocusedColumn.FieldName)control.KeyPress += new KeyPressEventHandler(SBDH_KeyPress);control.Leave += new EventHandler(SBDH_Leave);control.TextChanged += new EventHandler(SBDH_TextChanged);elsecontrol.KeyPress -= new KeyPressEventHandler(SBDH_KeyPress);control.Leave -= new EventHandler(SBDH_Leave);control.TextChanged -= new EventHandler(SBDH_TextChanged);/单元格禁止输入非数字private void SBDH_KeyPress(object sender, KeyPressEventArgs e)if (金额 = this.gvDetail.FocusedColumn.FieldName)TextEdit pTB = (TextEdit)sender;/强制转换对象,成TextEdit型/回车键,无法获取焦点,如需获取焦点,则按键函数重载 /protected override bool ProcessCmdKey(ref Message msg, Keys keyData)/禁用空格键if (32 = e.KeyChar) /或用e.KeyChar != (char)Keys.Spacee.Handled = true;return;/处理退格键if (8 = e.KeyChar)e.Handled = false;return;/处理能转换为数字的文本内容,否则不能输入trydouble.Parse(pTB.Text + e.KeyChar.ToString();catch/处理非法字符e.KeyChar = (char)0;/或者用e.Handled = true;/离开显示0.00private void SBDH_Leave(object sender, EventArgs e)if (金额 = this.gvDetail.FocusedColumn.FieldName)TextEdit pTB = (TextEdit)sender; /强制转换对象,成TextEdit型/处理.#这种情况if (0 = pTB.Text.IndexOf(.)pTB.Text = 0 + pTB.Text;/处理pTB.Text空内容情况if (string.IsNullOrEmpty(pTB.Text)pTB.Text = 0.00;/TextEdit类text属性值变化,计算总额privatevoidSBDH_TextChanged(objectsender,EventArgse)if(金额=this.gvDetail.FocusedColumn.FieldName)TextEditpTB=(TextEdit)sender;/强制转换对象,成TextEdit型if(string.IsNullOrEmpty(pTB.Text)pTB.Text=0;double sumDou=ds.Tables0.AsEnumerable().Sum(dc=dc金额=DBNull.Value?0:Convert.ToDouble(dc金额);double priceDou;/总金额if(string.IsNullOrEmpty(this.gvDetail.GetFocusedValue().ToString().Trim()priceDou=0.00;elsepriceDou=Convert.ToDouble(this.gvDetail.GetFocusedValue().ToString().Trim();te_Sum.Text=(sumDou-priceDou+Convert.ToDouble(pTB.Text).ToString();te_Sum.Text=string.Format(0:N,Convert.ToDecimal(te_Sum.Text.Trim();/金额格1.3.12. DevExpress.XtraGrid.Views.Grid.GridView 定位到某行某列,该怎么解决在窗体打开的时候在DevExpress.XtraGrid.Views.Grid.GridView 已经获得数据的时候直接定位到某行某列,网格要获得输入焦点-解决思路-gridView1.SelectCell(rowhandle,column);gridview1.showeditor();1.3.13. 获取行号,列号gvItems.FocusedRowHandle;1.3.14. 列名,获取当前单元格的列名this.gvDetail.FocusedColumn.GetTextCaption();this.gvDetail.FocusedColumn.FieldName;1.3.15. 取值. 某行某列的值this.gvDetail.GetRowCellValue(1, this.gvDetail.Columns消费单号) as string;第1行列名为消费单号的属性值,注,起始行为第0行. 当前行某列的值this.gvDetail.GetFocusedRowCellValue(消费类别) as string. 当前行当前列的值this.gvDetail.GetRowCellValue(this.gvDetail.FocusedRowHandle, this.gvDetail.FocusedColumn) as stringthis.gvDetail.FocusedValue as string;this.gvDetail.GetFocusedValue() as string;this.gvDetail.GetFocusedRowCellValue(this.gvDetail.FocusedColumn) as string;1.3.16. 设置与取值相思,把get改为set即可/设置单元格数据(将0行0列的单元格赋值123)gridView1.SetRowCellValue(0, gridView1.Columns0, 123);this.gvDetail.SetFocusedRowCellValue(this.gvDetail.FocusedColumn, 0.00);1.3.17. 获取焦点. 当前单元格,当前行当前列获得焦点this.gvDetail.SelectCell(this.gvDetail.FocusedRowHandle, this.gvDetail.FocusedColumn); 1.3.18. 删除当前行this.gvDetail.DeleteSelectedRows();1.3.19. 显示自动筛选行/显示自动筛选行(效果跟Excel的自动筛选差不多)gv2.OptionsView.ShowAutoFilterRow = true;1.3.20. 双击进入编辑状态/窗体加载函数中显示gvItems属性this.gvItems.OptionsBehavior.Editable = true;/可否编辑 this.gvItems.OptionsBehavior.EditorShowMode = DevExpress.Utils.EditorShowMode.Mo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年山东省平邑县英语八年级第二学期期中达标检测试题含答案
- 网络信息检索试题及答案
- 听胎心试题及答案
- 2025年医疗机构药材订购协议示例
- 2025年双方策划共同出资购买房产协议书
- 2025年会计师事务所策划业务联盟协议(草案)
- 2025年版权授权代理协议模板
- 数字化转型对企业风险管理的影响
- 2025年心血管科医院合作策划协议书
- 改革开放新形势下国企国际化发展策略
- 2025年小升初语文冲刺押题试卷
- 中国邮政储蓄银行重庆分行招聘笔试题库2025
- SQL中数据标识与完整性的维护试题及答案
- 2025年三轮电动车项目市场调查研究报告
- 2024年济南长清产业发展投资控股集团有限公司招聘笔试真题
- 第23课《“蛟龙”探海》课件-2024-2025学年统编版语文七年级下册第六单元
- GB/T 13460-2025再生橡胶通用规范
- 【MOOC期末】《Academic Writing 学术英语写作》(东南大学)中国大学慕课答案
- 【MOOC】数字逻辑电路实验-东南大学 中国大学慕课MOOC答案
- 广东省广州市2024年中考数学真题试卷(含答案)
- TSG+11-2020锅炉安全技术规程
评论
0/150
提交评论