sourcegrid简介中文版

上传人:第*** 文档编号:32697416 上传时间:2018-02-12 格式:DOC 页数:19 大小:288KB
返回 下载 相关 举报
sourcegrid简介中文版_第1页
第1页 / 共19页
sourcegrid简介中文版_第2页
第2页 / 共19页
sourcegrid简介中文版_第3页
第3页 / 共19页
sourcegrid简介中文版_第4页
第4页 / 共19页
sourcegrid简介中文版_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《sourcegrid简介中文版》由会员分享,可在线阅读,更多相关《sourcegrid简介中文版(19页珍藏版)》请在金锄头文库上搜索。

1、- 1 -SourceGrid 3简介SourceGrid 是 Windows 窗体的一个控件,完全由 C#语言写成的. 目的是制作一个简单而灵活的表格控件以方便显示数据,并可以显示一系列格式化的数据。现在有大量像这类可用来使用的控件,但是大部分都需要购买,而且难于用户化,或和.net 不兼容或是以 DataSet 为导向的。本文对 SourceGrid 控件的使用和功能做了一下概括,关于 SourceGrid 的所有类、属性和方法的细节请参照 CHM 的文档或存在于压缩文件的 project 例子,如果有问题、想法或问题给我发邮件,发到 获得 SourceGrid- 2 -SourceGri

2、d 是由 DevAge Source Pack 构成的,可以在 DevAge Source Pack page下载。基本概念控件在 DevAge 里主要有两个控件。SourceGrid3.dll 能插入到 Visual Studio 的工具栏中,并能在任何.NET 窗体中使用: GridVirtual -虚表格单元的表格类 (ICellVirtual). Grid - 实体表格单元的表格类 (ICell). 之所以有两个截然不同的基础类:虚表格和实体表格。虚表格是它的表格单元是用来定义显示的外观和单元的行为而不包含数据值。实体表格有虚表格单元类的相同的属性,且包含每个单元对应的值,特别是每个单

3、元和表格的特定位置对应。每个单元是由基于修正的 模型-视图-控制器-编辑器 四个基础模块构成: Model : 模型是用来管理每个单元的值的类。它包含值或值和它的属性关联,用来同其他的控件交互。 View : 视图是用来绘制单元和显示单元的格式化的数据。 Controller : 控制器是提供单元行为的类。 Editor : 编辑器是用来定制编辑单元的类。这样的模块细分使得代码的编写有了伸缩性,提高了代码的重复利用,节省了时间和提供了所有类型定制的固定的基础。对于更多相同的案例就有了已经实现和配置好了的一些类事例,但要编写或修改少许代码来实现自己订制的单元(要想了解细节请看下文)。Rows a

4、nd Columnsgrid 主要的组成部分是行和列。为了巧妙地处理数据信息,SourceGrid 提供了两个属性:- 3 - Rows - 管理 SourceGrid 所有行的信息,基类是 RowsBase 。 Columns - 管理 SourceGrid 所有列的信息,基类是 ColumnsBase 。每当使用实体表格时,就是使用类 RowInfoCollection 和类ColumnInfoCollection 继承了基类来实现的。每当使用虚表格时,就必须继承基类、并用定制代码的方式来提供数据源的信息。巧妙地处理实体表格的行和列注意: Only valid for real grid.

5、下面是一些 RowInfo 类的属性 : Height, Top, Bottom, Index, Tag. 而这些是ColumnInfo 类的一些属性:Width , Left, Right, Index, Tag.有很多的方式创建行和列: grid1.Redim(2,2); grid1.RowsCount = 2; grid1.ColumnsCount = 2; grid1.Rows.Insert(0); grid1.Rows.Insert(1); grid1.Columns.Insert(0); grid1.Columns.Insert(1);这三个例子用不同的方法创建了相同的两行两列的表

6、格。要改变行或列的宽度或高度可以实用以下代码来实现:grid1.Rows0.Height = 100;grid1.Columns0.Width = 100;属性 Top, Bottom, Left 和 Right 的值是利用行和列的宽和高自动计算出来的。计算出行和列,必须为每个表格单元元素创建对应的位置,像下面的代码:grid1.Redim(2,2);grid10, 0 = new SourceGrid3.Cells.Real.Cell(Cell 0, 0);grid11, 0 = new SourceGrid3.Cells.Real.Cell(Cell 1, 0);grid10, 1 = n

7、ew SourceGrid3.Cells.Real.Cell(Cell 0, 1);grid11, 1 = new SourceGrid3.Cells.Real.Cell(Cell 1, 1);模型命名空间: SourceGrid3.Cells.ModelsModel 类是用来把数据按单元分离到每个表格单元中,这样有有两个主要原因: 为了实现数据仅存储于原始数据源中的虚表格,在这种情况下,如果 Model 类实现的正确,就可以直接从数据源中读取数据。- 4 - 为了继承 cells 类但又要维持一个容易使用的代码。没有必要改变 Cell 基类来添加新的特性,但可以简单的加一个新的 Model

8、类来添加新的特性。 每个单元类 cell 都有一个 Model 属性来获取和设置一个 ModelContainer 类对象实例。ModelContainer 这个类是一个集合,集合元素是 IModel 类型的,每个 IModel 类型的元素包含所有用来实现新特性的属性。主要的 Model 是存有单元 cell 数据值的 ValueModel,但也可以存在别的 Model 和你创建的订制的 Model 。下面是一些 Cell 默认的 Model: IValueModel IToolTipText ICheckBox IContextMenu ISortableHeader 上面这些 Model

9、中每个 Model 都包含各自的特性的特殊的属性,例如:IToolTipText 包含提示字符串属性 ToolTipText 。每个单元 cell 都有一个的 model 集合,用这个集合可以在单一的单元中实行多个特性。通常使用实体单元,使用一个简单地实现接口的 model 直接存取所需数据;使用虚单元,可以通过实现接口来和外部数据源直接绑定。 视图命名空间: SourceGrid3.Cells.Views每个单元都有一个 IView 接口类型的可以设置和获取 View 的属性。单元用这个属性来绘制和定制单元的外观。View 类的目的是把绘制外观代码和静止不变的代码分离,在表格单元中共享相同的

10、外观属性。事实上,相同的外观类实例能同时用在很多单元中,从而使系统资源的使用最优。下面是些常用的类,命名空间是 SourceGrid3.Cells.Views: SourceGrid3.Cells.Views.Cell - 用于典型的表格单元,使用这个视图可以定制颜色,字体,边框和很多别的属性。 SourceGrid3.Cells.Views.Button - 用于使用按钮类型的表格单元,支持使用主题。 SourceGrid3.Cells.Views.Link - 用于使用超连接类型的表格单元。 SourceGrid3.Cells.Views.CheckBox* - 用于使用复选框类型的表格单

11、元。这个复选框可以被选,取消选择并可以包含文本。 SourceGrid3.Cells.Views.Header* - 用于一般的表头单元。 SourceGrid3.Cells.Views.ColumnHeader* - 用于列的头单元,支持使用主题。 SourceGrid3.Cells.Views.RowHeader - 用于行的头单元,支持使用主题。 - 5 - SourceGrid3.Cells.Views.MultiImages - 允许在一个单元中显示一个或多个图像。 用 “*“标记的 View 需要一个特殊的控件才能可以使用,例如, CheckBox 需要ICheckBox 模型。上

12、面的一些类中有些类包含一个或多个静态属性,静态属性是方便使用的类实例。这段代码是创建新的视图类,设置一些属性和把它分配给更多先前创建的单元中:SourceGrid3.Cells.Views.Cell view = new SourceGrid3.Cells.Views.Cell();view.BackColor = Color.Khaki;grid10,0.View = view;grid12,0.View = view;用几行的代码你可以创建自己定制的外观 View,要自己订制单元的外观我建议从 Cell 继承或直接使用 Cell,因为 Cell 已经实现了一些默认的方法。在下面的代码事例中

13、,创建了一个绘制红颜色的椭圆形的外观 View ,并在单元中使用了这个外观:public class MyView : SourceGrid3.Cells.Views.Cellprotected override void DrawCell_Background(SourceGrid3.Cells.ICellVirtual p_Cell,SourceGrid3.Position p_CellPosition, PaintEventArgs e, Rectangle p_ClientRectangle)base.DrawCell_Background (p_Cell, p_CellPositio

14、n, e, p_ClientRectangle);e.Graphics.DrawEllipse(Pens.Red, p_ClientRectangle);在单元中使用新的外观 View 可用下面代码来实现:MyView myView = new MyView();/. code to populate the gridgrid1r, c.View = myView;控制器命名空间: SourceGrid3.Cells.Controllers每个单元都有一个可是设置和获得 ControllerContainer 对象实例的Controller 属性。Controller 这个类是一个 ICont

15、roller 接口类型的集合。每个 IController 接口能用来实现单元的行为通过使用一些事件,例如 Click, MouseDown, KeyPress, .下面是些常用的类:- 6 - SourceGrid3.Cells.Controllers.Cell - 一般行为的单元。 SourceGrid3.Cells.Controllers.Button - 有按钮行为单元。 SourceGrid3.Cells.Controllers.CheckBox* - 有复选框行为的单元(需要 ICheckBox Model)。 SourceGrid3.Cells.Controllers.Colum

16、nFocus - 当鼠标单击列的标头时,把焦点设置到该列。 SourceGrid3.Cells.Controllers.ColumnSelector - 当鼠标单击列的标头时,用来选择这列。 SourceGrid3.Cells.Controllers.ContextMenu* - 用来在单元上绑定一个快捷菜单 (需要 IContextMenu Model) SourceGrid3.Cells.Controllers.CustomEvents - 揭示一个可以使用的事件列表,不用创建一个新的控制器 Controller。 SourceGrid3.Cells.Controllers.FullColumnSelection - 用来使列选择模型可用。 SourceGrid3.Cells.C

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 职业教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号