`

(转).net_DevExpress控件使用经验总结

    博客分类:
  • .net
阅读更多
DevExpress控件使用经验总结
DevExpress是一个比较有名的界面控件套件,提供了一系列的界面控件套件的DotNet界面控件。本文主要介绍我在使用DevExpress控件过程中,遇到或者发现的一些问题解决方案,或者也可以所示一些小的经验总结。总体来讲,使用DevExpress控件,可以获得更高效的界面设计以及更美观的效果。本文主要通过给出相应的例子以及相关界面效果来说明问题,希望大家能够从中获得好的知识和思路。

1、 应用Office2007和Office2010的界面主题

开始使用DevExpress的时候,发现程序界面效果好像没有出现Office的样式,只是有几种可怜的内置效果。经过查找发现需要在入口函数里面添加几行代码,如下所示。

            DevExpress.UserSkins.OfficeSkins.Register();
            DevExpress.UserSkins.BonusSkins.Register();
            DevExpress.Skins.SkinManager.EnableFormSkins();
指定界面主题效果,可以通过代码设置,指定主题的名称即可。

UserLookAndFeel.Default.SetSkinStyle("Office 2010 Blue");

或者在界面中添加一个控件 DefaultLookAndFeel,设置其对应的界面效果即可实现整个设计时刻和运行时刻的界面效果,如下图所示。





2、Properties属性

DevExpress很多控件的一般属性,会放置在该属性下面,如ComboBox下拉列表的属性操作如下


        private void InitDictItem()
        {
            this.txtManufacture.Properties.Items.Clear();
            this.txtManufacture.Properties.Items.AddRange(DictItemUtil.GetDictByDictType("供货商"));
        } 

这是一个很丰富属性的归类,很多常用的属性基本上都囊括在这里了,如果你是从传统界面转换过来DevExperss开发,找不着相关的属性,尽管来这里看看。例如设置显示的可见性、可用性、

自定义显示格式等等。



3、GridView的相关操作

获取选定行制定列的内容,用于删除记录的操作代码如下

DevExpess的GridView控件,和传统WinFrom的GridView有很大的不同,如他没有GetSelectedRow的行集合操作,但可以通过GetSelectedRows获取制定的行序号,通过行序号来进行操作,如要获得指定行,制定列的内容,可以通过GetRowCellDisplayText 获取文本或者通过GetRowCellValue获取对应的值。

如果需要获取当前选定行(焦点所在行)的制定列的数据,那么可以通过函数GetFocusedRowCellDisplayText("ID")来获取。


        private void winGridViewPager1_OnDeleteSelected(object sender, EventArgs e)
        {
            if (MessageUtil.ShowYesNoAndTips("您确定删除选定的记录么?") == DialogResult.No)
            {
                return;
            }

            int[] rowSelected = this.winGridViewPager1.GridView1.GetSelectedRows();
            foreach (int iRow in rowSelected)
            {
                string ID = this.winGridViewPager1.GridView1.GetRowCellDisplayText(iRow, "ID");
                BLLFactory<ItemDetail>.Instance.Delete(ID);
            }
            BindData();
        }



为GridView行提示信息以及显示行号,有时候为了方便数据的显示,需要在GridView的第一列显示该列的行信息以及行号,那么需要为GridView控件添加一个ToolTipController控件,然后实现该控件的GetActiveObjectInfo事件,在事件里面添加下面代码以及实现GridView控件的CustomDrawRowIndicator事件即可,如下代码所示。


        private void toolTipController1_GetActiveObjectInfo(object sender, DevExpress.Utils.ToolTipControllerGetActiveObjectInfoEventArgs e)
        {
            if (e.SelectedControl != gridControl1) return;

            ToolTipControlInfo info = null;
            //Get the view at the current mouse position
            GridView view = gridControl1.GetViewAt(e.ControlMousePosition) as GridView;
            if (view == null) return;

            //Get the view's element information that resides at the current position
            GridHitInfo hi = view.CalcHitInfo(e.ControlMousePosition);
            //Display a hint for row indicator cells
            if (hi.HitTest == GridHitTest.RowIndicator)
            {
                //An object that uniquely identifies a row indicator cell
                object o = hi.HitTest.ToString() + hi.RowHandle.ToString();
                StringBuilder sb = new StringBuilder();
                sb.AppendLine("行数据基本信息:");
                foreach (GridColumn gridCol in view.Columns)
                {
                    if (gridCol.Visible)
                    {
                        sb.AppendFormat("    {0}:{1}\r\n", gridCol.Caption, view.GetRowCellDisplayText(hi.RowHandle, gridCol.FieldName));
                    }
                }
                info = new ToolTipControlInfo(o, sb.ToString());
            }

            //Supply tooltip information if applicable, otherwise preserve default tooltip (if any)
            if (info != null)
            {
                e.Info = info;
            }
        }




         private void gridView1_CustomDrawRowIndicator(object sender, RowIndicatorCustomDrawEventArgs e)
        {
            if (ShowLineNumber)
            {
                e.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Far;
                if (e.Info.IsRowIndicator)
                {
                    if (e.RowHandle >= 0)
                    {
                        e.Info.DisplayText = (e.RowHandle + 1).ToString();
                    }
                }
            }
        }



以上虽然是使用了我的DevExpress分页控件,不过分页控件的内部就是使用了DevExpress的GridControl控件的。



4、常用布局控件。

传统的数据编辑界面,我们一般需要添加一个Label,然后再加一个TextBox或者其他控件,而DevExpress在这方面确实下了不少功夫,引入了一个LayoutControl的控件,该控件可以在你添加一个TextBox等其他控件的时候,自动为你加入一个类似Label的控件,而且布局已经给你设计对齐好,添加几个可以在一行中放置多列控件,对齐效果也非常好,如果是重新设计界面,省却不少对齐以及维护Label的属性。

另外,该布局属性可以设置类似GroupBox的边界效果(默认不显示文本和边界),也可以统一设计在该布局控件内部各种控件的效果,如ReadOnly为True的显示如何,Enable为False的显示如何,只需要设置一个地方,就可以统一界面效果了。总之,用起来相当的不错。





总体来讲,第一次使用DevExpress会觉得很多地方不太适应,甚至有时候找不到对应的属性,但是当慢慢熟悉了使用该控件来开发的时候,会觉得它确实在很多地方引入了较好的理念,习惯了就觉得效率提高了不少,界面设计上也会觉得更加美观和方便了。由于我只是在我平常开发的小例子,以及我的Winform开发框架中,应用了DevExpress控件的各种常用效果,应该还有很多常用的控件以及高级控件没有用到,以后有继续使用的话,会继续记录相应的经验心得供大家探讨。

最后附上一个我应用DevExpress控件改进过Winform开发框架的界面效果图,里面应用到了Ribbon界面效果以及基于DevExpress控件的分页控件(前面有介绍过使用例子),使用了分页控件,对整个GridView的处理上,会方便很多,界面效果如下所示。





主要研究技术:代码生成工具、Visio二次开发、送水管理软件等共享软件开发
专注于Winform开发框架、WCF开发框架的研究及应用。
  转载请注明出处:
分享到:
评论

相关推荐

    DevExpress控件使用经验总结

    本文将从DXperience控件的基本使用到一些高级应用进行详细的经验总结,希望这些经验能够帮助开发者快速掌握DevExpress控件,并提高开发效率。 1. 应用Office 2007和Office 2010的界面主题 开发者可以为自己的应用...

    DevExpress控件

    文中提到的DevExpress控件使用经验总结主要包含以下方面: 1. DevExtreme控件汉化处理:控件的本地化对提升用户体验至关重要,尤其在中文使用环境下。文中可能介绍了如何为DevExpress控件实现汉化,或者如何使用...

    DevExpress中文帮助及使用大全

    总的来说,"DevExpress中文帮助及使用大全"这套资源为.NET开发者提供了一条深入学习和精通DevExpress控件的路径。通过深入研究这两个文件,开发者不仅可以掌握DevExpress控件的基本用法,还能学习到高级特性和实战...

    C#DevExpress学习.zip

    1. "C#DevExpressѧϰ":这部分内容可能包含了教程、课程大纲或者学习路径,指导开发者如何从基础到进阶逐步掌握DevExpress控件的使用。学习 DevExpress 需要了解.NET Framework的基础知识,同时对C#语法有扎实的...

    DevExpress中文文档

    总结来说,"DevExpress中文文档"是一个宝贵的资源,它包含了Windows Forms开发中DevExpress控件的全面信息,无论是初学者还是有经验的开发者,都能从中受益。通过深入学习和实践,开发者能够利用DevExpress高效地...

    DevExpress学习心得

    DevExpress是一款强大的.NET开发工具集,...通过以上知识点的学习和实践,初学者能够逐步掌握DevExpress控件的使用,提升.NET开发能力。记得持续探索、实践并不断更新知识,才能在这个不断发展的技术领域中保持竞争力。

    DevExpress_VCL_15.2.2_Full_Source_XE10.1_Downloadly.ir.rar

    DevExpress VCL 15.2.2 Full Source XE10.1 是一款专为Delphi开发者设计的组件库,提供了丰富的用户界面控件和工具,以帮助开发人员构建高效、美观的应用程序。这个压缩包包含了DevExpress在VCL(Visual Component ...

    关于layoutcontrol里面添加控件排版的属性.docx

    DevExpress 是一款功能强大且广泛应用于Windows Forms、WPF 和 ASP.NET 平台的控件库。它提供了丰富的控件和工具,帮助开发者快速创建高质量的应用程序。其中,LayoutControl 控件是 DevExpress 提供的一种布局控件...

    DevExpress用法总结

    在本文中,我们将重点关注GridControl的使用技巧,它是DevExpress控件中非常核心的一个部分,常用于展示和编辑表格数据。 1. ComboBoxEdit控件的使用: - 变为只读状态:通过设置TextEditStyle属性为...

    DevExpress XtraReport开发指南-单表报表设计详解

    DevExpress XtraReport是一款强大的报表生成工具,广泛应用于.NET平台上的各种应用程序中,用于设计、生成和预览报表。本指南将深入探讨如何使用DevExpress XtraReport进行单表报表的设计,涵盖报表的创建、数据绑定...

    .NET C# 在线招聘系统

    总结,.NET C#在线招聘系统展示了如何运用.NET框架和C#语言构建Web应用。对于初学者,这是一个很好的起点,可以从中学习到数据库操作、文件处理、用户认证、邮件发送等多个方面,同时也能体验到软件工程的实践过程。...

    修改过的DevExpress.XtraReports

    DevExpress.XtraReports是一款功能强大的报表设计和开发工具,广泛应用于.NET Framework平台下的Windows Forms、ASP.NET以及WPF等应用程序中。它提供了丰富的报表设计界面,让用户能够通过拖放方式创建复杂的报表...

    DXperienceUniversal 10.1.5 Help for VS2010(2010年7月2日版本)

    - **ASP.NET**:提供了ASP.NET Web Forms和MVC中使用的DevExpress控件的相关资料。 ##### 2. eXpressApp Framework文档 - **基础概念**:介绍eXpressApp Framework的核心概念和技术栈,帮助开发者快速上手。 - **...

    Delphi开发学习一、二、三、四、五控件及报表实例源码和使用数据库

    在Delphi编程环境中,控件和...总结,Delphi开发中控件和报表的使用是提升用户体验和数据处理能力的关键。通过实例源码和数据库文件,我们可以更好地理解如何在实际开发中应用这些工具,从而提高软件开发的效率和质量。

    DXperience Universal Suite 15.2.7

    - **自定义控件**: 通过继承现有的DevExpress控件类,可以创建新的控件或扩展现有功能。 #### 四、汉化资源 1. **汉化重要性**: 对于中文用户来说,将界面元素翻译成中文是非常重要的。这不仅提升了用户体验,还...

    计件工资软件vbnet.rar_计件_计件工资软件vbnet

    通过VB.NET的报表控件(如Crystal Reports或DevExpress),可以设计出丰富的报表格式,展示每位员工的工资详情和整体工资总额。同时,报表可以导出到Excel,方便进一步的分析和打印。这需要开发者掌握报表设计原理和...

    datagridview使用方法集结

    在.NET框架中,DataGridView控件是一个非常重要的组件,它用于显示和编辑表格数据。这个控件功能强大,灵活且易于使用,广泛应用于Windows Forms应用程序。在这个"datagridview使用方法集结"中,我们将深入探讨三个...

    C#(Winfrom)N炫酷皮肤(含B/S三层皮肤使用示例)

    例如,你可以使用第三方库如DevExpress或Telerik,它们提供了丰富的皮肤库和控件集,允许开发者轻松地改变应用程序的外观和感觉。在使用这些库时,只需选择一个预设的皮肤并应用到你的窗体和控件上即可。 对于...

    XtraReport简单的例子

    总结来说,XtraReport提供了一个灵活且功能丰富的报表设计环境,支持多种数据绑定方式,使得即使是没有太多编程经验的用户也能快速创建出专业级别的报表。在“XtraReport简单的例子”中,通过实践操作,你可以掌握...

    人事管理系统 源代码 下载 C#

    常见的如DevExpress、Telerik等提供的控件库,可以提供丰富的UI组件,如网格视图、图表、日历等,使界面更美观,操作更便捷。 七、源码学习与调试 对于学习者来说,分析和理解源代码是提升技能的关键。可以通过...

Global site tag (gtag.js) - Google Analytics