DevExpress控件开发技术系列
更新时间:2023-11-09 12:36:01 阅读量: 教育文库 文档下载
作者:李福红
工作单位:河南省鹤壁市鹤壁工贸学校计算机教研室
联系地址:河南省鹤壁市淇滨区兴鹤大街南段鹤壁工贸学校 邮编:458030
Email:hebiziyu@126.com ;hebilifuhong@126.com 联系电话:13849210255
===============================================================================
DevExpres表格控件运行时动态设置表格列
----DevExpress For VS.Net 高级技巧系列(一)
李福红
摘要:DevExress控件是VS.net开发中应用最广、效果最出众的控件包之一,这里我们尝试用具体实例来介绍它的一些高级用法。
关键词:DevExpress控件;运行时动态设置;XraGrid技巧;
正文:
DevExpres产品是全球享有极高声誉的一流控件套包产品!国内典型用户包括:用友、金蝶、神州
数码、工信部、中国石化、汉王科技等众多大中型科技型企业。它功能强大、界面美观,是.NET基础控件扩展包。可以让您快速开发出完美、强大的应用程序。而且使用起来也很方便,容易上手。美中不足的是、该控件包自带的演示中、没有运行时配置(动态设置)控件属性的介绍,这对于很多软件开发工作来说,很不方便,本人结合自己教学开发实例,在这里就相关控件的使用做一介绍,希望对读者朋友能够有所助益。
开发环境:VS2008 C#,Access,DevExpress 控件包 V9.1.4。
示例软件运行环境:.netframework2.0,windows xp/windows2003/windows7。
要明白如何动态设置XtraGridView的数据列,我们首先需要了解它都需要哪些属性被设置了才能正确应用。我们在设计期界面中随便拉一个XtraGrid控件到空白窗体,然后点击XtraGrid控件的RunDesigner按钮,之后点击 Columns选项卡,再点击 Add按钮添加一个表格列(gridColumn1),之后选中我们刚刚添加的gridColumn1,在窗口的右侧我们看到这个表格列的各种属性。
我们的目标是设置表格列能够显示不同的编辑控件,请留意这样一个属性:ColumnEdit,点击右侧的下拉按钮,我们看到有这样的一个窗口列出了所有可用的编辑控件列表,如图一所示:
这里我们选择ComboBoxEdit控件作为示例,其他控件类同。
当我们选择了ComboBoxEidt控件(下拉列表)以后,请注意实际显示的名称是:RepositoryItemComboBox。这是因为、DevExpress的控件包中,对于ColumnEdit控件进行了一些列的封装操作以便基础控件能够很好地应用在GridVieww中。封装后的ComboBox控件的名字就是RepositoryItemComboBox。类似的还有其他多种控件,读者朋友们可一一尝试着看看、或者查看示例项目的源码(DevControlpractice.LFH.Function.FuncGridControl第183行)。
我们知道、对于下拉列表控件,主要的工作就是要设置下拉的列表信息,继续向下查看它的属性,我们留意到这样一个属性:Items。点击、我们看到下面这样一个窗口,如图2所示。
好了,至此、我们明白:如果要添加一个下拉列表作为表格列的编辑控件,需要做这样几个动作:
1、 添加表格列到表格中去;
2、 设置表格列的属性:可见与否、是否可写/只读; 3、 添加表格列的编辑控件;
4、 设置编辑控件的相关属性:编辑控件类型,编辑控件的各种属性如列表值、查询值
等。 既然、我们设置一个表格需要知道表格列的这些属性,那么我们可以在设计之前就先确定这些属性,并把它们存放在一个地方去,从而形成我们的数据字典信息(关于数据字典、感兴趣的朋友可以查阅相关资料、这里我们不再多说)。
这里我们设计一个表格来存放我们需要的各种相关信息:如图:
这样做的好处是显而易见的:我们可以很直观地对表格各个数据列的呈现形式进行设
置、查看;运行过程中如果需要修改,那么我们只需要调整这里的设置就可以立刻看到执行的效果而无需再次进行任何编码处理。
有了上面数据列的信息设置、接下来我们就尝试用代码实现上面这些工作,从而使得我们能够很好地在运行期间控制表格的列属性。 代码实现:
1、要添加表格列到表格中,我们用如下代码: DevExpress.XtraGrid.Columns.GridColumn gcol = new DevExpress.XtraGrid.Columns.GridColumn();//创建一个新的表格列
(gview as DevExpress.XtraGrid.Views.Card.CardView).Columns.Add(gcol);//把新创建的表格列添加到表格中去。这里要切记:一定要在创建之后立刻加入到表格中去,然后再去设置它的相关属性,否则设置的各种属性都无法呈现出来。
2、设置表格列的属性:
gcol.Caption = dt.Rows[i][\设置列的描述文字; gcol.Name = \设置列名称、这样才能把数据源中相应列的数据显示在GridView中;
gcol.MinWidth = 60;//设置默认列宽,这样做是避免数据字典中未设置列宽时导致列宽过小的现象; try {
gcol.Width = Convert.ToInt32(dt.Rows[i][\设置列宽为字典中设置的宽度;
if (gcol.Width <= 20) gcol.BestFit();//如果列宽过小、则设置为自适应宽度。 } catch {
col.BestFit();
}
gcol.CustomizationCaption = \自定义\
DevExpress.XtraEditors.Repository.RepositoryItem ColEditor = GetDevExpressGridColumnType(dt.Rows[i][\根据字典设置信息设置列的编辑控件
gcol.ColumnEdit = ColEditor;//注意、要先把控件设置为列的编辑控件,然后才能进行下面的具体属性设置、否则设置无效。 //if (gcol.Width <= 50) gcol.BestFit();
gcol.ColumnEditName = \ gcol.FieldName = dt.Rows[i][\
//************设置可见属性
if ((dt.Rows[i][\ else gcol.Visible = false;
3、针对表格列的编辑控件ComboBox控件的属性进行设置: if (dt.Rows[i][\
DevExpress.XtraEditors.Repository.RepositoryItemComboBox cb = gcol.ColumnEdit as DevExpress.XtraEditors.Repository.RepositoryItemComboBox; cb.TextEditStyle = TextEditStyles.DisableTextEditor;
接下来我们设置表格列的只读属性:
设置宽度:
#region 设置宽度 int ColumnWidth = 0; try {
ColumnWidth = Convert.ToInt32(dt.Rows[i][\}
catch {
ColumnWidth = 0; }
if (myCol == null) continue; else {
if (ColumnWidth == 0) myCol.BestFit(); else myCol.Width = ColumnWidth; }
#endregion
好了、至此,我们已经根据我们在数据字典中设置的信息,对表格中各个数据列的展现形式进行了设置,运行程序就看到效果了,如图4所示:
总结:
我们这里以ComboBox下拉列表框为例介绍了DevExpress控件在运行时动态设置表格列的技术要点,随附的演示项目中、我们实现了DevExpress表格控件所能支持的各种编辑控件的设置方法,感兴趣的读者朋友可以仔细看看代码,也可以把演示项目中的FunGridControl
类文件直接加入您自己的项目中直接引用。对于其他的控件、如C#自带的标准控件、WebUI控件包等,也可以使用相同的思路,写出自己的具体实现代码,从而使得我们的数据表格控件编程变得简洁方便。
正在阅读:
DevExpress控件开发技术系列11-09
浮选溶液化学习题及答案02-27
某机械厂变电所一次系统设计概述12-16
大学生诚信的缺失与重建08-10
尔雅隋唐史课后答案03-08
小学生有趣的对联02-11
数据结构部分课后习题答案(耿国华)04-29
新学期畅想初二作文1000字02-06
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 控件
- 开发技术
- DevExpress
- 系列
- 关于新列尾故障的处置建议 - 图文
- 农村垃圾分类现状、存在的困难及建议
- 六年级下册《卫生与健康》教案
- 9-不合格品管理及不安全食品召回制度
- 华东《CAD技术基础》2017年春学期在线作业(一)
- 广东开平市委书记违法批地 处理意见上报省纪委
- 2016年四川雅安事业单位招聘公告
- 重庆市南岸区2016-2017学年七年级下学期期末考试英语试题
- 作文开头与结尾
- 100t桥式起重机安装维修作业指导书
- 二中教学楼深基坑开挖安全专项施工方案 - 图文
- 自考中学语文教学法学习重点二
- 温岭市新河镇
- 四年级下册语文第一单元复习课教案
- 免疫学名词解释
- “作者出面”和元小说
- 河南省新乡市第七中学2018届九年级上学期期末考试语文试题
- 关于表彰2013年山东省建筑工程质量“泰山杯”奖的通报
- 绿化施工合同范本
- 党员承诺践诺工作总结