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控件包等,也可以使用相同的思路,写出自己的具体实现代码,从而使得我们的数据表格控件编程变得简洁方便。

本文来源:https://www.bwwdw.com/article/7icv.html

Top