缺少的和未经测试的功能
因为DataGridView基控件包含众多方法、事件和属性,它们完全被OutlookGrid继承,我没有努力用OutlookGrid的实现来测试它们全部。这意味着:一旦您开始为其它超出本文叙述的功能特性而使用OutlookGrid,您将很有可能遇到bug或功能缺失。
因为我已遇到其中的一些(问题),我将在下面列出我所知道的问题:很不幸,OutlookGrid不支持嵌套分组。这就是下一步要做的。
改变网格的显示风格可能导致分组不能被100%正确地绘出。
通常,Group(分组)的文本颜色被设置为黑色并且不能改变,您将需要改变OutlookGridRow类中的Paint()方法。
我没有用VirtualMode(虚模式)测试网格。(译注:VirtualMode属性在 .NET Framework 2.0 版中是新增的。虚拟模式是为使用大型数据存储区而设计的。当 VirtualMode 属性为 true 时,可以创建一个包含大量行和列的 DataGridView,然后处理 CellValueNeeded 事件来填充单元格。虚拟模式要求实现基础数据缓存,以便基于用户的操作来处理 DataGridView 单元格的填充、编辑和删除。详见MSDN。)说实话,我不知道那个概念是如何工作的,因此我怀疑:一旦您开启了VirtualMode(译注:即将其设置为true)数据项还能被正确显示。
绑定数据源不是直接绑定到DataGridView基控件。因此,数据绑定只为显示数据项工作。然而,一旦您编辑网格中的数据项,数据源将不会被更新。您将不得不自己动手实现更新。
这也意味着网格中的新数据项将不会自动被添加到数据源。这也将不得不用手工实现。
为Group的row重写了缺省行,不是所有普通行触发的事件分组的行都能触发。比如,分组行重写OnDoubleClick事件,以自动折叠或展开。不改变代码该行为是不能被触发的。
毫无疑问这里还有一些其它问题,请向我报告它们,那么我和其它开发者都将可以从中获益。也许,我会投入更多时间开发这个控件的更多功能。
设计和可扩展性
在这个部分,我要描述这个控件如何实现的更多细节,特别面向可能要在该控件上做一些编码的开发人员读者。我尝试用VS2005中某些东西弄成类似一个的UML图,但是好吧…这个图将必须做出来。
OutlookGrid
观看地址: http://www.qqread.com/outlook/b350425.html进入讨论组讨论。相关专题
- Javamail写带附件eml文件并调用Outlook (0次浏览)



