彩票走势图

DevExpress控件开发常用要点项目总结版(二)

原创|其它|编辑:郝浩|2012-10-15 14:55:01.000|阅读 2056 次

概述:在上一篇《DevExpress控件开发常用要点项目总结版(一)》中讲到了已经三点DevExpress控件的使用经验及教训,以及综合设计到的多个项目的问题,下面我们接着上一篇文章继续吧。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

在上一篇《DevExpress控件开发常用要点项目总结版(一)》中讲到了已经三点DevExpress控件的使用经验及教训,以及综合设计到的多个项目的问题,下面我们接着上一篇文章继续吧。

4、设置GridView的行指示器(行头)显示行号

DevExpress控件开发常用要点项目总结版(二)

在我的分页控件以及Winform开发框架很多项目介绍里面,很多都显示了行号,其实这个在DevExpress中的实现很简单,如果需要,可以实现在自己的代码里面。

1) 先实现GridView的CustomDrawRowIndicator事件,实现代码如下所示。

private void advBandedGridView1_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e)
        {
            e.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
            if (e.Info.IsRowIndicator)
            {
                if (e.RowHandle >= 0)
                {
                    e.Info.DisplayText = (e.RowHandle + 1).ToString();
                }
                else if (e.RowHandle < 0 && e.RowHandle > -1000)
                {
                    e.Info.Appearance.BackColor = System.Drawing.Color.AntiqueWhite;
                    e.Info.DisplayText = "G" + e.RowHandle.ToString();
                }
            }
        }

2)然后设置GridView控件的IndicatorWidth为合适的宽度,如40左右则比较好。

DevExpress控件开发常用要点项目总结版(二)

这样设置后,就能顺利显示行号了,是不是很方便呢。

5、GridView表头多行显示(折行),表头及行内容居中操作

DevExpress控件开发常用要点项目总结版(二)

在一些自定义的列表中,我们为了合理显示表头的内容,可能会要求表头显示的文字可以折行显示,然后还需要内容居中显示,那么在DevExpress该如何操作呢,代码设置如下所示。

//表头折行设置
            this.gridView1.ColumnPanelRowHeight = 40;
            this.gridView1.OptionsView.AllowHtmlDrawHeaders = true;
            this.gridView1.Appearance.HeaderPanel.TextOptions.WordWrap = DevExpress.Utils.WordWrap.Wrap;            
            //表头及行内容居中显示
            this.gridView1.Appearance.Row.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
            this.gridView1.Appearance.HeaderPanel.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;

然后设置表头的时候,设置内容使用\r\n来进行换行,如:体重\r\n(kg)

下面是我分页控件里面的例子设置,供参考。

this.winGridViewPager1.AddColumnAlias("Weight", "体重\r\n(kg)");
            this.winGridViewPager1.AddColumnAlias("Pulse", "脉搏\r\n(次)");
            this.winGridViewPager1.AddColumnAlias("BloodSystolic", "收缩压");
            this.winGridViewPager1.AddColumnAlias("BloodDiastolic", "舒张压");
            this.winGridViewPager1.AddColumnAlias("SightLeft", "视力\r\n(左)");
            this.winGridViewPager1.AddColumnAlias("SightRight", "视力\r\n(右)");

6、 控件内容输入问题

在客户使用软件的时候,反馈说有一些数字输入框、日期输入框,不支持键盘输入内容,经测试,确实是存在这个问题,默认的数字、日期等输入,都要切换输入法才可以输入,不能默认就支持数字的输入,那么是否有办法解决呢,当然办法总是有的。

其实只需要设置 ImeMode=Off 即可解决问题,关于这个属性,大家可以参考下面的介绍。(就开发而言,记得逢数字,日期的控件,必须设置 ImeMode=Off ,否则你的软件使用客户会不满的。

ImeMode 枚举:指定一个值,该值是用来确定在选定了对象时该对象的输入法编辑器 (IME) 的状态。 以下是微软的解释:

DevExpress控件开发常用要点项目总结版(二)

7、多行表头的实现

DevExpress控件开发常用要点项目总结版(二)

有时候,我们为了一些特殊的需要,要对表头进行特别的排版,使其支持多行表头的效果,如上图所示,这样方便对各项内容进行归类显示,易于阅读,在DevExpress中应该如何实现这个效果呢?

1)先在设计模式将普通的GridView转换为BandedGridView或者AdvBandedGridView,这样才能支持这种多行表头的做法,如下所示。

DevExpress控件开发常用要点项目总结版(二)

2)定义一些字段,用来显示其中的内容,如下图所示。

DevExpress控件开发常用要点项目总结版(二)

3)定义一些Band列,设置相关的属性,并把设计界面中的字段列表拖动到对应过的Band列上面,这样就构成了一个Band列和字段内容的对应关系。

DevExpress控件开发常用要点项目总结版(二)

完成上面的绑定关系后,记得设置GridView控件的属性,使其不要显示原本的ColumnHeader等内容。

DevExpress控件开发常用要点项目总结版(二)

设置好这些内容,才能合理、完美显示出多行表头的信息。

8. 在GridControl控件中使用SearchLookUpEdit构建数据快速输入。

DevExpress控件开发常用要点项目总结版(二)

一个实际的案例就是门诊的时候,医生用药的情况,除了选择其他内容外,主要的就是快速录入药品信息。我们平常去大一点 的医院看病,好像看到的多数操作都是这样。还有一种方式就是销售人员提供的报价单,从产品里面选择信息,然后修改下价格,这些场景都是很适合这样的操作的。



标签:DevExpress

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

文章转载自:博客园

为你推荐

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


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP