背景
OutlookGrid继承于VS2005新推出的DataGridView控件。如果您对DataGridView熟悉,将OutlookGrid整合进您的解决方案应该是相当容易。如果您之前已做过一些GDI+编程和用户控件,OutlookGrid应该不难被扩展。
我想要用尽可能少的代码尽可能简单地创建OutlookGrid。因此,该控件不能使用复杂的钩子、回调及Windows API。该控件只简单地重写了一些DataGridView的事件处理器。不幸的是,DataGridView只实现了很少的事件,这让我花费了数个小时决定重写哪个事件。同样,这也花费了我不少的时间来找到一个可工作的解决方案以使得网格容易使用。

使用该代码
假定您已创建了一个VS2005下的C# Windows应用程序项目,添加OutlookGrid.cs、OutlookGrid.Designer.cs、OutlookGridRow.cs、OutlookGridGroup.cs和DataSourceManager.cs文件到您的项目。在添加OutlookGrid控件到您的窗体之前,确保您首先编译所有文件。在此之后,控件被添加到您的工具箱中。您现在可以将其拖至您的窗体。
一旦控件就位,这里有两个方法来填充网格:
手动(非绑定的)添加列、行及单元格,或
使用数据绑定(绑定的)。
正如在示例代码中所示:后面的一个方法是最简单的实现。
在本文中,我将不会讨论所有选项,然而,在演示项目和资源的例子中它们已被实现。
数据绑定
通常,只有两个数据类型可以被用于数据绑定:DataSet或一个对象数组列表(该列表必须实现IList接口,比如:ArrayList)其它类型到现在为止仍然不被支持,例如像:DataTable或DataTableView。
在创建窗体时添加以下代码:
//创建一个dataset(数据集)对象
DataSet dataset = new DataSet();
//填充dataset,举例来说,通过从一个xml文件中读取数据
dataset.ReadXml(@"invoices.xml");
//绑定dataset到OutlookGrid(在这个例子中命名为outlookGrid1)。
//设置dataMember(数据成员)变量为“invoice”,指示dataset中的表的名称以显示该表到网格中。
outlookGrid1.BindData(dataset, "invoice");静态页面:http://www.qqread.com/outlook/b350425.html进入讨论组讨论。
相关专题
- Javamail写带附件eml文件并调用Outlook (0次浏览)



