热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SourceGrid2.0_翻译(2)

VisualModelNamespace:Sou

VisualModel

Namespace: SourceGrid2.VisualModels

 

每个单元格有VisualModel 属性,返回一个类型IVisualModel的接口。

单元格使用这一个接口绘图并且使单元格的视觉特性符合客户需求。

 

VisualModel的目的是将绘图和其它部分的代码分离并且允许在单元格之间的相同视觉的模型共享。 事实上 VisualModel 的相同实例同时地能在许多单元格上被用,这将系统的资源使用最佳化。

然而, 默认的 VisualModel类是只读的,每 VisualModel具有一个允许你产生相同的模型同一实例的复制方法。

 

以下是默认的 VisualModel 在名称空间SourceGrid2.VisualModels 下的类别:

 

SourceGrid2.VisualModels.Common:能自定义颜色,字型,边缘

SourceGrid2.VisualModels.CheckBox *:为勾选栏用设计单元格。 勾选栏能被选择, 设置为无效而且能包含一个说明。

SourceGrid2.VisualModels.Header *:为表头用以 3D立体边缘设计单元格。

SourceGrid2.VisualModels.MultiImages:允许单元格的超过一个图像的图画。

 -

 *与一个星号一起作记号的 VisualModel 需要一个特别的接口才能正确地工作,

举例来说勾选栏模型需要一个支援 ICellCheckBox 接口的单元格。

 

每一个这些类别都包含一个或多个方便的只读实例的静态的特性

 

  • SourceGrid2.VisualModels.Common.Default

  • SourceGrid2.VisualModels.Common.LinkStyle

  • SourceGrid2.VisualModels.CheckBox.Default

  • SourceGrid2.VisualModels.CheckBox.MiddleLeftAlign

  • SourceGrid2.VisualModels.Header.Default

  • SourceGrid2.VisualModels.Header.ColumnHeader

  • SourceGrid2.VisualModels.Header.RowHeader

这一个码表示该如何分配相同的 VisualModel 到较多的先前创建的单元格然后改变一些特性:

 

SourceGrid2.VisualModels.Common l_SharedVisualModel = new SourceGrid2.VisualModels.Common();

grid1[0,0].VisualModel = l_SharedVisualModel;

grid1[1,0].VisualModel = l_SharedVisualModel;

grid1[2,0].VisualModel = l_SharedVisualModel;

l_SharedVisualModel.BackColor = Color.LightGray;

 

也考虑当你写Cell.BackColor特性自动地调用 VisualModel BackColor 特性。

为了更便利的使用通常的一些属性,当你写诸这样的代码时:Cell.BackColor = Color.Black;  单元格自动地再一次到复制目前的 VisualModel, backcolor 换成复制的实例而且分配复制的实例。

 

 

 

DataModel

Namespace: SourceGrid2.DataModels

用格式化的字符串来表示一个单元格的值时,通常是必须组装单元格DataModel的属性

如果属性为空,是不能改变单元格的值

 

通常 DataModel 使用被请求的类型的 TypeConverter 处理必需的变换, 特别地字串变换.(过去一直表现单元格数值)

 

以下是名称空间SourceGrid2.DataModels:的默认的DataModel:

 

DataModelBase提供转换的方法,仅允许通过代码修改单元格的值;它不供应绘画接口。

EditorControlBase :抽象类,帮助使用类似于单元格的编辑控件

EditorTextBox -一个本文框编者。

EditorComboBox

EditorDateTime

EditorNumericUpDown

EditorTextBoxButton:有一个按钮的一个本文框编者开启一种明细窗体

EditorUITypeEditor:提供有 UITypeEditor 的所有类型的单元格编辑。许多类型支援这一个类别: DateTime ,Font,enum,.。。

 

一种DataModel

可以被许多单元格共享,就像为单元格的每一列使用相同的DataModel

 

产生一个可编辑的单元格有3种方法:

 

·                1.grid1[0,0] = new SourceGrid2.Cells.Real.Cell("Hello", typeof(string));

·           2 SourceGrid2.DataModels.IDataModel l_SharedDataModel =

     SourceGrid2.Utility.CreateDataModel(typeof(string));

     grid1[0,0].DataModel = l_SharedDataModel;

     grid1[1,0].DataModel = l_SharedDataModel;

·                3SourceGrid2.DataModels.EditorTextBox l_TextBox =

     new SourceGrid2.DataModels.EditorTextBox(typeof(string));

     grid1[2,0].DataModel = l_TextBox;

这一个方法是可能共享在许多单元格之间的相同编辑器。

……(省略一段)

 

当然用订制的控件或特别的行为产生一个订制的 DataModel 编辑器是可能的。

下列的图片表示可得的大部份的编辑器和像图像特性一样的一些选择项:

SourceGrid2_CellTypes.jpg 

 

BehaviorModel

Namespace: SourceGrid2.BehaviorModels

每个单元格都有一个BehaviorModel的集合,你可以使用Behaviors属性进行读取操作

BehaviorModel 是一个表示单元格的行为特色的类。 一个模型能在许多单元格之间被共享并且对任何新的功能的加入提供很好的弹性和简单性;

 

这些是类型 BehaviorModel 的默认类别:

 

SourceGrid2.BehaviorModels.Common 通常行为。

SourceGrid2.BehaviorModels.Header表头的行为。

SourceGrid2.BehaviorModels.RowHeader一个行表头的行为, 由于调整~大小功能。

SourceGrid2.BehaviorModels.ColumnHeader- 一个栏表头的行为, 藉由分类而且调整~大小功能。 (需要 ICellSortableHeader接口)

SourceGrid2.BehaviorModels.CheckBox* - 一个勾选栏的行为。 (需要 ICellCheckBox)

SourceGrid2.BehaviorModels.Cursor*- 允许对一个特定的单元格一个光标的关联。 (需要 ICellCursor)

SourceGrid2.BehaviorModels.Button  -一个按钮的行为。

SourceGrid2.BehaviorModels.Resize - 允许一个单元格与鼠标一起调整~大小.( 这一个模型自动地被表头模型用)

SourceGrid2.BehaviorModels.ToolTipText*   ToolTipText 和一个单元格相连。 (需要 ICellToolTipText)

SourceGrid2.BehaviorModels.Unselectable  区块从收到焦点的一个单元格。

SourceGrid2.BehaviorModels.ContextMenu*- contextmenu 的成绩和一个单元格相连。 (需要 ICellContextMenu)

SourceGrid2.BehaviorModels.CustomEvents

SourceGrid2.BehaviorModels.BindProperty

SourceGrid2.BehaviorModels.BehaviorModelGroup

 

*与一个星号一起作记号的 BehaviorModel 需要特别的接口完成他们的任务,

举例来说类别勾选栏需要单元格支持接口 ICellCheckBox

 

每个类别有一些静态的特性返回类别的一个默认实例:

  • SourceGrid2.BehaviorModels.Common.Default

  • SourceGrid2.BehaviorModels.Button.Default

  • SourceGrid2.BehaviorModels.CheckBox.Default

  • SourceGrid2.BehaviorModels.ColumnHeader.SortHeader

  • SourceGrid2.BehaviorModels.ColumnHeader.ResizeHeader

  • SourceGrid2.BehaviorModels.ColumnHeader.SortResizeHeader

  • SourceGrid2.BehaviorModels.ColumnHeader.NoSortNoResizeHeader

  • SourceGrid2.BehaviorModels.ColumnHeader.Default

  • SourceGrid2.BehaviorModels.Cursor.Default

  • SourceGrid2.BehaviorModels.Header.Default

  • SourceGrid2.BehaviorModels.Resize.ResizeHeight

  • SourceGrid2.BehaviorModels.Resize.ResizeWidth

  • SourceGrid2.BehaviorModels.Resize.ResizeBoth

  • SourceGrid2.BehaviorModels.RowHeader.Default

  • SourceGrid2.BehaviorModels.ToolTipText.Default

  • SourceGrid2.BehaviorModels.Unselectable

在下列的码中当使用者在单元格之上移动鼠标的时候,我产生改变单元格的 backcolor BehaviorModel 的例子

 

public class CustomBehavior : SourceGrid2.BehaviorModels.BehaviorModelGroup

{

         public override void OnMouseEnter(SourceGrid2.PositionEventArgs e)

         {

                 base.OnMouseEnter (e);

                 ((SourceGrid2.Cells.Real.Cell)e.Cell).BackColor = Color.LightGreen;

         }

         public override void OnMouseLeave(SourceGrid2.PositionEventArgs e)

         {

                 base.OnMouseLeave (e);

                 ((SourceGrid2.Cells.Real.Cell)e.Cell).BackColor = Color.White;

         }

}

//在窗体的加载事件中插入代码

grid1.Redim(2,2);

 

CustomBehavior l_Behavior = new CustomBehavior();

for (int r = 0; r

         for (int c = 0; c

         {

                 grid1[r,c] = new SourceGrid2.Cells.Real.Cell("Hello");

                 grid1[r,c].Behaviors.Add(l_Behavior);

         }

 

转:https://www.cnblogs.com/jht/archive/2005/07/04/186220.html



推荐阅读
  • vb.net不用多线程如何同时运行两个过程?不用多线程?即使用多线程,也不会是“同时”执行,题主只要略懂一些计算机编译原理就能明白了。不用多线程更不可能让两个过程同步执行了。不过可 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • ASP.NET2.0数据教程之十四:使用FormView的模板
    本文介绍了在ASP.NET 2.0中使用FormView控件来实现自定义的显示外观,与GridView和DetailsView不同,FormView使用模板来呈现,可以实现不规则的外观呈现。同时还介绍了TemplateField的用法和FormView与DetailsView的区别。 ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • 深入理解CSS中的margin属性及其应用场景
    本文主要介绍了CSS中的margin属性及其应用场景,包括垂直外边距合并、padding的使用时机、行内替换元素与费替换元素的区别、margin的基线、盒子的物理大小、显示大小、逻辑大小等知识点。通过深入理解这些概念,读者可以更好地掌握margin的用法和原理。同时,文中提供了一些相关的文档和规范供读者参考。 ... [详细]
  • 导出功能protectedvoidbtnExport(objectsender,EventArgse){用来打开下载窗口stringfileName中 ... [详细]
  • IOS开发之短信发送与拨打电话的方法详解
    本文详细介绍了在IOS开发中实现短信发送和拨打电话的两种方式,一种是使用系统底层发送,虽然无法自定义短信内容和返回原应用,但是简单方便;另一种是使用第三方框架发送,需要导入MessageUI头文件,并遵守MFMessageComposeViewControllerDelegate协议,可以实现自定义短信内容和返回原应用的功能。 ... [详细]
  • 本文介绍了一种在PHP中对二维数组根据某个字段进行排序的方法,以年龄字段为例,按照倒序的方式进行排序,并给出了具体的代码实现。 ... [详细]
  • 如何在php文件中添加图片?
    本文详细解答了如何在php文件中添加图片的问题,包括插入图片的代码、使用PHPword在载入模板中插入图片的方法,以及使用gd库生成不同类型的图像文件的示例。同时还介绍了如何生成一个正方形文件的步骤。希望对大家有所帮助。 ... [详细]
  • 本文介绍了pack布局管理器在Perl/Tk中的使用方法及注意事项。通过调用pack()方法,可以控制部件在显示窗口中的位置和大小。同时,本文还提到了在使用pack布局管理器时,应注意将部件分组以便在水平和垂直方向上进行堆放。此外,还介绍了使用Frame部件或Toplevel部件来组织部件在窗口内的方法。最后,本文强调了在使用pack布局管理器时,应避免在中间切换到grid布局管理器,以免造成混乱。 ... [详细]
  • C#多线程解决界面卡死问题的完美解决方案
    当界面需要在程序运行中不断更新数据时,使用多线程可以解决界面卡死的问题。一个主线程创建界面,使用一个子线程执行程序并更新主界面,可以避免卡死现象。本文分享了一个例子,供大家参考。 ... [详细]
  • Java图形化计算器设计与实现
    本文介绍了使用Java编程语言设计和实现图形化计算器的方法。通过使用swing包和awt包中的组件,作者创建了一个具有按钮监听器和自定义界面尺寸和布局的计算器。文章还分享了在图形化界面设计中的一些心得体会。 ... [详细]
  • Visual C# TabControl中TabPage分离成若干个Form的小办法
    写Visual的同学们都会用到这个TabControl的控件,然后会分好几页的TabPage,每页都有很多控件和业务逻辑,但是每页的关系也 ... [详细]
author-avatar
虽虽___Hui
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有