DevExpress学习笔记

XtraGrid-个人较为感兴趣的效果

一 显示行号

在列表中每一行的前面显示当前的行号。

在GridView的属性中找到 OptionsView->ShowIndicator,设置此属性为true。

添加GridView 的 CustomDrawRowIndicator事件,代码如下:



1 private void bandedGridView1_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e)
 2 
 3         {
 4 
 5             if(e.Info.IsRowIndicator)
 6 
 7             {
 8 
 9                 if(e.RowHandle>=0)
10 
11                 {
12 
13                     e.Info.DisplayText = (e.RowHandle + 1).ToString();
14 
15                 }
16 
17             }
18 
19         }



 

  显示的效果如下:

 

DevExpress界面分格 devexpress使用_显示行号

 

 

 

二 在单元格中显示图标+文字

在Desinger中新增加一个列,设置其属性 ColumnEdit的类型为ImageComboBoxEdit,如下图所示:

 

DevExpress界面分格 devexpress使用_高亮显示_02

在下拉列表中可看出能够选择的控件相当的多,这也就意味着如果我们需要可以在Grid的单元格中使用这些控件做出各种效果,各位如果有兴趣可深入研究下其他控件的使用方法,应该大同小异吧。

设置完毕,在ColumnEdit的附属属性SmallImages选择需要添加图标的集合控件,关于图标集合控件使用方法详见前几篇笔记。然后设置Items属性,在弹出的属性框内添加新项,如下图所示:

 

DevExpress界面分格 devexpress使用_DevExpress界面分格_03

由上图可看出在右边的Value属性为与绑定值的比较,此处代表如果等于1,则显示Up图标,如果有其他的值那么继续新增成员。

设置完毕后,效果如下图:

DevExpress界面分格 devexpress使用_控件_04

 

  Up和Down分别对应于绑定值为1和2。此处还要保证绑定值与设计时的值在类型上一致。

如果只想在单元格内显示图标,不显示文字,应该怎么做呢?实际效果可参考OutLook中的邮件已读和未读标志图标。

其实很简单,只需设置Column属性中的ColumnEdit->GlyphAlignment的值为Center既可。注意到GlyphAlignment可选择Default、Near、Center、Far等值,分别是什么效果呢,各位可自行进行测试。

 

DevExpress界面分格 devexpress使用_高亮显示_05

另外如何对表头进行图标设置呢?可先在Views的属性中设置其Images属性为某Images集合列表,然后在Column属性中ImageIndex属性为所需要显示的图标序号,不想显示表头文字,只需要再设置OptionColumn->ShowCaption为False即可。

三 高亮显示某单元格或者某行

在OutLook中,如果有没有阅读的邮件,在列表中这一行是高亮显示的,使用XtraGrid控件可轻松实现此效果。

首先选择Designer中的Apperance下的Format Conditions,新增一个格式化条件。

其次,设置此条件的属性Apperance->Font为Bold,然后设置ApplyToRow为True,默认为False,如果为False则此格式化条件只适用于某一列中的值,如果为True,则此列所在的那一行都可适用与这个格式化条件。

然后,选择此条件中的Column属性为prname(示例中的列名),设置Condition为Equal,Value1为test1,这个条件表示如果在绑定的数据源中的prname等于test1,则把此行高亮显示。

 

DevExpress界面分格 devexpress使用_DevExpress界面分格_06