Dev控件研究一 gridcontrol简单使用.docx
- 文档编号:18009717
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:11
- 大小:46.92KB
Dev控件研究一 gridcontrol简单使用.docx
《Dev控件研究一 gridcontrol简单使用.docx》由会员分享,可在线阅读,更多相关《Dev控件研究一 gridcontrol简单使用.docx(11页珍藏版)》请在冰点文库上搜索。
Dev控件研究一gridcontrol简单使用
Dev控件研究
(一)gridcontrol简单使用
最近,工作安排,要我研究dev控件。
。
。
项目没开始,被要求搞研究。
。
。
界面
dev的控件表现效果及实用功能都是蛮方便和强大的。
gridcontrol中有5种view型式,普通的是gridview,然后分别为cardview、BandedView、AdvancedBandedView、LayoutView;共5种。
gridview跟WinForm自带的差不多,有一些高级特性,比如说可以把某一列拿出来分组啊,之类的。
我这几天主要研究了这三个:
LayoutView、BandedView、AdvancedBandedView。
LayoutView实现的视觉效果可以说很。
。
。
炫~(我们做应用行业软件的。
。
项目组长却要求这么炫的效果。
。
。
我觉得他是想不开。
。
。
)
仔细看了dev的demo源代码,实际上这里只需要在gridcontrol中的designer中的view组中把OptionView下的viewmode设置成“Carousel”就达到这种“旋转木马”式的gridcontrolview特效了。
。
。
关键部分还是细节,layoutView1.OptionsCarouselMode.PitchAngle这个属性决定“旋转木马”的pitchangle螺距角;螺旋角;螺旋升角;俯仰角;倾角;节锥半角 【主科技词汇】 。
。
。
RollAngle属性决定着倾侧角度~~其它的属性都好说。
然后就是columns的设置问题了,设置column的长高啊什么的,现在还没完全弄明白~~。
。
。
有时候设置了,coumn没变。
。
。
反正要想真正达到图片中的那种效果,得很细心的搞一下才行。
将其设置为图片类型的时候,是比较痛苦的事情。
我开始以为在给gridcontrol的datatable里面设置一列为路径string就够了~结果试了半天(没办法,源码里面调用的是xml文件!
~~图片是Int64类型的,刚开始没仔细看。
。
),在csdn搜到了。
。
。
//显示数据
privatevoidshowData(List
{
DataTabledt=newDataTable("OneEmployee");
dt.Columns.Add("Caption",System.Type.GetType("System.String"));
dt.Columns.Add("Department",System.Type.GetType("System.String"));
dt.Columns.Add("PhotoName",System.Type.GetType("System.Byte[]"));
for(inti=0;i { DataRowdr=dt.NewRow(); dr["Caption"]=list[i].Name; dr["Department"]=list[i].Department; stringimagePath=@"D: \C#\photos\"+list[i].PhotoPath; dr["PhotoName"]=getImageByte(imagePath); dt.Rows.Add(dr); } gridControl1.DataSource=dt; } //返回图片的字节流byte[] privatebyte[]getImageByte(stringimagePath) { FileStreamfiles=newFileStream(imagePath,FileMode.Open); byte[]imgByte=newbyte[files.Length]; files.Read(imgByte,0,imgByte.Length); files.Close(); returnimgByte; } 来自CSDN博客,转载请标明出处: 必须转换成2进制数组,属性为pictureedit的column才能认~~~,then,基本上完成。 。 。 LayoutView~ .net-第三方控件Devexpress-GRIDCONTROL和GRIDVIEW的简单使用(C/S) ∙Tag: ∙ .Net ∙ C_ ∙ 第三方控件 ∙ Devexpress ∙ GridView GRIDCONTROL 和 GRIDVIEW 的简单使用 【添加、删除、保存、撤销、修改(是在gridView上面直接修改)】 【添加、修改、删除】只是对gridView所绑定的数据源进行的操作的,需要通过【修改】来提交到数据库 【撤销】是撤销对数据源的修改,保存后无法撤销 gridControl: DevExpress.XtraGrid.GridControl. 相当于一个dateGrid的控制器,它包括多种显示样式: GridView,CardView,LayoutView 等等. gridView: DevExpress.XtraGrid.Views.Grid.GridView. 是一个常用的表格形式,下面以gridView为例. labelControl1: DevExpress.XtraEditors.LabelControl. 标签,类似于普通的Label SysUserMgt: 是一个对象管理接口,省略. SysUserMgtImpl: 是对管理接口的实现(增、删、改、差),省略. SysUser: 实体类,省略. SysUserMgtImpl --> Select(); 查询所有用户,返回 DataSet 集合 SysUserMgtImpl --> Insert(SysUser sysUser); 接受一个新用户,添加 SysUserMgtImpl --> Update(SysUser sysUser); 接受一个新用户,修改 SysUserMgtImpl --> Delete(int sysUserId); 接受用户的ID,删除用户 ===================加载数据================================ SysUserMgt sysUserMgt = new SysUserMgtImpl(); _dsUser = sysUserMgt.Select(); // 绑定数据源 gridControl1.DataSource = _dsUser.Tables[0">; ===================设置gridView的样式====================== // 设置奇数行颜色 // 默认也是白色 可以省略 this.gridView1.Appearance.OddRow.BackColor = Color.White; // 使能 // 和和上面绑定 同时使用有效 this.gridView1.OptionsView.EnableAppearanceOddRow = true; // 设置偶数行颜色 this.gridView1.Appearance.EvenRow.BackColor = Color.WhiteSmoke; // 使能 this.gridView1.OptionsView.EnableAppearanceEvenRow = true; // ID 只读 this.gridView1.Columns[0">.ReadOnly = true; 无效 this.gridView1.Columns[0">.OptionsColumn.ReadOnly = true; // 可以用下面的方式替换 //DevExpress.XtraEditors.Repository.RepositoryItemTextEdit userId = new DevExpress.XtraEditors.Repository.RepositoryItemTextEdit(); //userId.ReadOnly = true; //this.gridView1.Columns[0">.ColumnEdit = userId; // 将第三列设置成密码框,让其看不见,但是可以修改 DevExpress.XtraEditors.Repository.RepositoryItemTextEdit loginPass = new DevExpress.XtraEditors.Repository.RepositoryItemTextEdit(); // 密码的显示样式可以替换,只能是 char 型 loginPass.PasswordChar = '*'; this.gridView1.Columns[2">.ColumnEdit = loginPass; // 将站点字段替换成一个下拉式的只读(默认)表格,comboBox无效 DevExpress.XtraEditors.Repository.RepositoryItemGridLookUpEdit station = new DevExpress.XtraEditors.Repository.RepositoryItemGridLookUpEdit(); StationMgt stationMgt = new StationMgtImpl(); DataSet dsStation = stationMgt.SelectIdAndName(); station.DataSource = dsStation.Tables[0">; // 当什么都没选的时候显示的文本 station.NullText = "请选择站点"; // 显示的字段名 //如果是En文,区分大小写。 如: NAME or name station.DisplayMember = "站点名称"; // 给view 的值 -- 字段名 // 区分大小写 station.ValueMember = "站点编号"; this.gridView1.Columns[8">.ColumnEdit = station; ===================添加记录================================ this.gridView1.AddNewRow(); ===================删除记录================================ this.gridView1.DeleteSelectedRows(); ===================保存修改================================ this.labelControl1.Focus(); // 见“焦点设置” if (_dsUser.Tables[0">.GetChanges()==null) { MessageBox.Show("没有修改"); return; } SysUserMgt sysUserMgt = new SysUserMgtImpl(); // 遍历所有修改过的行 foreach (DataRow row in _dsUser.Tables[0">.GetChanges().Rows) { /* ========DataRowState 成员名称 说明 ======== Added 该行已添加到 DataRowCollection 中,AcceptChanges 尚未调用。 Deleted 该行已通过 DataRow 的 Delete 方法被删除。 Detached 该行已被创建,但不属于任何 DataRowCollection。 DataRow 在以下情况下立即处于此状态: 创建之后添加到集合中之前;或从集合中移除之后。 Modified 该行已被修改,AcceptChanges 尚未调用。 Unchanged 该行自上次调用 AcceptChanges 以来尚未更改。 * */ // 如果是删除,则通过ID删除 if (row.RowState == DataRowState.Deleted) { int userId = int.Parse(row[0, DataRowVersion.Original">.ToString()); MessageBox.Show(userId.ToString()); sysUserMgt.Delete(userId); } // 如果是添加,则创建无ID对象保存——“添加” else if (row.RowState == DataRowState.Added) { SysUser user = new SysUser(); user.Login_id = row[1">.ToString(); user.Login_pass = row[2">.ToString(); user.Name = row[3">.ToString(); user.Tel = row[4">.ToString(); user.Mobile = row[5">.ToString(); user.Address = row[6">.ToString(); user.Zip = row[7">.ToString(); user.StationId = int.Parse(row[8">.ToString()); sysUserMgt.Insert(user); } // 如果是修改,则创建有ID对象保存——“修改” else if (row.RowState == DataRowState.Modified) { SysUser user = new SysUser(); user.SysUserId = int.Parse(row[0">.ToString()); user.Login_id = row[1">.ToString(); user.Login_pass = row[2">.ToString(); user.Name = row[3">.ToString(); user.Tel = row[4">.ToString(); user.Mobile = row[5">.ToString(); user.Address = row[6">.ToString(); user.Zip = row[7">.ToString(); user.StationId = int.Parse(row[8">.ToString()); sysUserMgt.Update(user); } } _dsUser.AcceptChanges(); // 改变ds,必须放到修改之后 this.gridView1.Focus(); // 见“焦点设置” MessageBox.Show("保存成功! "); ===================撤销修改================================ // 保存后无法撤销 this.labelControl1.Focus(); // 见“焦点设置” if (_dsUser.Tables[0">.GetChanges() == null) { MessageBox.Show("没有可撤销的项! "); } else { _dsUser.RejectChanges();// 还原改变(回滚) } this.gridView1.Focus(); // 见“焦点设置” ===================焦点设置================================ 如果添加、删除、保存、撤销等触发的控件能够能到焦点,如: 按钮,那么,就可以将设置焦点的这两句话去掉。 由于我们用的是快捷菜单,它是无法获得焦点的,所以才会有这两句话: this.labelControl1.Focus(); this.gridView1.Focus(); 作用: 触发_dsUser.Tables[0"> 的 Change 事件(失去焦点才能触发) 解释: labelControl1: 是一个无内容的空标签,让它得到焦点,那么 gridView 就会失去焦点,才会触发 _dsUser.Tables[0"> 的 Change 事件 当然,也可以用其他可以得到焦点的空间代替,但是这个空间必须是可见的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Dev控件研究一 gridcontrol简单使用 Dev 控件 研究 gridcontrol 简单 使用