C# Win Form Infragistics UltraGrid 控件基本使用

前言

     目前大部分需要服务端的PC程序都用B/S方式来实现了,Java做服务端,分离的前端用JS框架,这在电商/云服务上用的比较普遍。但是有相当一部分程序,特别是对交互性要求较高的程序,像各行各业的ERP,比如HIS,各种收银系统,还有工业控制相关的上层应用依然要用C/S方式来实现。涉及到硬件通讯的上层应用基本都是用Windows全家桶。这是因为任何硬件设备开发出来,都要提供Windows驱动。虽然用Java+B/S的方式也能绕个弯实现对接,但整体用Windows程序无疑是最正宗的解决方案。尽管大家对Windows吐槽很多,不过吐槽归吐槽,装新电脑时大家不声不响的又装上了Windows。谁叫它经营几十年,市场占有率那么高呢,只能从善如流吧。

     Windows上层应用程序一般用C#实现,涉及到数据展示方面一般都会用表格类控件DataGridView, 不过对于一个有经验有追求的程序员来说,一定不满足于微软自带的那个DataGridView,因为这个控件实在太简陋了,界面单调呆板不说,很多功能都没有,只有一些基本的功能。这里向大家推荐比较牛逼的一个第三方控件 Infragistics UltraGrid,有着非常强大的功能,能实现表格中植入控件,分组统计以及各种非常炫目的UI设置。。。


   

     Infragistics UI Controls and Tools For Developers and UX Pros是一个专门制作第三方UI控件的公司,已经做了很多年了,功能能稳定性方面这个不用怀疑。虽然国内用的不多,不过鉴于其强大的功能,如果你用上了,一定会爱不释手。
其它的控件你可以不用,但这里面的UltraGrid表格控件是其核心。不得不了解。

怎么安装这里不做赘述,网上自己去搜一下。也别问我怎么破解,希望大家支持正版,我只是自己学习使用啊。

UltraGrid随着套件的版本也更新了很多版了, 新的版本跟老版本大体相同,但增加了很多内容。
其中有一个问题点很有必要吐槽一下,下面细说。

UltraGrid入门

  安装完后,一个新手一定迫不及待的想看看这个控件怎么使用,怎么看呢?
先从左边工具箱拖过来呗,OK 我们先把UltraGrid拖过来,这时系统会自动出现一个Wizard对话框,引导你如何往下走。

第一步选择


这个时候你的选择比较重要,一定不能关闭后等后面再设属性,一定要这时候把第一步选好:

注意这里一定选择第3项,意思时手动设置列,不要选择上面的通过创建DataSource自动产生列。手动设置的过程如下,

列定义

在这里先定义几个列,主要声明一下Key 属性,如果你绑定的是数据库来的DataTable,就填数据库表字段名。这里至少要声明一个字段,后面可以再加减都行。

不入误区

如果我们不选第3项会怎样呢?假设你没选第3项直接跳到结尾。等到后面再右键打开属性框会怎样呢,

按照我们的经验,这时选择手动设置列

设完点下面OK按钮

这时会弹出一个这样的对话框。

没地方关闭,前面设置的列也无法保存。只能作废,初学者很容易再这个地方就卡住了。文字的意思大概能看懂,但是既然都是手工定义,这里为什么要卡住用户,笔者也不知道原因。

因此一定要在拖放后第一步就选择第3项设置字段列。

列头设置

好,设置完字段列之后,对我们来说比较重要的一步就这是列头的文字了。这个设置再这里:

右键打开属性窗口,左边选择Bind[0].Columns, 中间选择某个字段,右边选择Header.Caption填写即可。

其它常用设置

UltraGrid的设置非常多,我们再列几个常用的,每一个设置既可以用代码实现,也可以在属性窗口能找到对应位置,限于篇幅,下面的设置不再一一给出截图。读者很容易通过代码找到属性窗口位置。

只选中单行(默认多行)

有时不想用户选择多行,希望只选择一行。

ultraGrid1.DisplayLayout.Override.SelectTypeRow = SelectType.Single;

只允许行高亮

 有时我们不希望用户编辑表格,只允许行高亮,格子不高亮也不显示光标, 选择设为行模式,设置如下:

ultraGrid1.DisplayLayout.Bands[0].Override.CellClickAction = CellClickAction.RowSelect;
ultraGrid1.DisplayLayout.Override.AllowUpdate = DefaultableBoolean.False;

表格左侧留白

如果希望表格编辑,我们希望左边留白一点点,高亮行显示一个小三角。英文叫RowSelector:

ultraGrid1.DisplayLayout.Override.RowSelectors = DefaultableBoolean.True;

改变默认的行背景色

默认选中时Windows背景蓝,前景白。设置如下:

ultraGrid1.DisplayLayout.Override.ActiveRowAppearance.BackColor=Color.PapayaWhip;
ultraGrid1.DisplayLayout.Override.ActiveRowAppearance.ForeColor=Color.Black;
ultraGrid1.DisplayLayout.Override.SelectedRowAppearance.BackColor=Color.PapayaWhip;

表头占满空间

如果字段比较少,右边空着会很难看,这时我们希望表头及数据自动占满宽度,字段多时不要用:

ultraGrid1.DisplayLayout.AutoFitStyle = AutoFitStyle.ResizeAllColumns;
ultraGrid1.DisplayLayout.Bands[0].Override.ColumnAutoSizeMode = ColumnAutoSizeMode.AllRowsInBand;

排序处理

单字段排序,在每个Columns里面设SortIndicator
ultraGrid.DisplayLayout.Bands[0].Columns["Name"].SortIndicator = SortIndicator.Ascending;
多字段排序(只能代码实现):

ultraGrid1.DisplayLayout.Bands[0].SortedColumns.Add("sort1", false, true);
ultraGrid1.DisplayLayout.Bands[0].SortedColumns.Add("sort2", false, true); 

设置某列为只读

有时我们希望某一列为只读,设置如下:

ultraGrid1.DisplayLayout.Bands[0].Columns[columnName].CellActivation = Activation.NoEdit;

允许Grid新增行

表格编辑模式时,我们希望设置允许用户新增数据,这是系统会自动加新行,新行你可以选择加在第1行之前或者最后一行之后。我一般是选择加在最后一行下面:
ultraGrid1.DisplayLayout.Bands[0].Override.AllowAddNew = AllowAddNew.TemplateOnBottom;

允许Grid删除行

表格编辑状态时,允许删除行。
ultraGrid1.DisplayLayout.Bands[0].Override.AllowDelete = DefaultableBoolean.True;

交替背景色

有时我们希望表格显示交替背景色,这样会更加美观。这个只能通过代码实现,也比较简单,就是实现一个事件:

 private void UltraGrid1_InitializeRow(object sender, InitializeRowEventArgs e)
 {
     if (e.Row.ListIndex % 2 == 1)
     {
         e.Row.Appearance.BackColor = Color.WhiteSmoke; // or any shade of gray you prefer
     }
     else
     {
         e.Row.Appearance.ResetBackColor();
     }
 }

总结

本文概述了如何进行Infragistics UltraGrid 的基本使用,如果不是大强度使用,这些基本够了。基本设置完之后,我们通过常规步骤访问数据库得到一个DataTable,绑定上去就可以愉快的看到结果了:

ultraGrid1.DataSource = dataTable1;

后面我们会介绍更高级的应用。

☆ 资料说明:☆ 压缩包内包含安装程序和注册机; Like Windows 8, Infragistics brings together the best of the PC and tablet in this suite. Impress and innovate with premier controls for data visualization. No matter what the platform or category, apps created with NetAdvantage for Windows UI will be bold, performant, and drive revenue thorugh the Windows Store. Fast & Fluid Maximize your apps with a Grid control designed for stylablity and high performance. Data and UI virtualization make this Grid lightweight and extremely fast when handling large amounts of data. This control allows you to display your data in the style and matter that best fits your needs. Drill, down, edit, delete, select, sort, group, and filter rows using your mouse, keyboard, or touch gestures. Innovative Charting Let your data tell the story, with the broadest range of interactive, high-performance Data Charts that include support for a full range of business, scientific, and financial charting scenarios, as well as trend line capabilities "right out of the box." This Data Chart is a next-generation charting control designed for handling a live data feed coming in with over tens of thousands of data point every several milliseconds. Touch Optimized Deliver the latest Touch UI with our new gesture supported controls - like our Editor controls - without needing to write code separately for mouse vs. touchscreen inputs. Touch support across HTML5 and XAML controls offers larger buttons and gesture-friendly UI for commonly used interactions like grouping, multiple sorting, multiple selection, scrolling, and more - no plug-ins or extensions needed. Reference App The Running Total app, which uses our XAML and HTML Chart and Map controls, is an end-to-end application that delivers a true Windows 8 experience, designed with best practices and performance. Included in the Running Total app are assemblies for a variety of Chart types, with trend lines, finanacial indicators, touch-first features, and our Geospatial Mapping controls, which support multiple tile sources and geo-imagery features.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值