半岛权威十大直营(官方)网站

DevExpress.XtraGrid网格控件使用小节

原创|其它|编辑:郝浩|2011-12-28 23:58:03.000|阅读 1034 次

概述:本文主要讲述DevExpress.XtraGrid网格控件在显示行号,图标和文字等方面的一些使用经验,希望的对大家有帮助。

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

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

  在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         }

  显示的效果如下:

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

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

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

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

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

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

 

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

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

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

  另外如何对表头进行图标设置呢?可先在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,则把此行高亮显示。


(慧都控件网版权所有,转载请注明出处,否则追究法律责任)
标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@wqylolg.cn

文章转载自:网络转载

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP