65.9K
CodeProject 正在变化。 阅读更多。
Home

基本 DataListView 实现

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.32/5 (13投票s)

2004年12月2日

CPOL

2分钟阅读

viewsIcon

66785

downloadIcon

245

它实现了一个用于数据查看的对象,其想法是从 ListView 派生而来。

Sample Image - DataListView.jpg

引言

这是我的第一篇文章,请不要太苛刻 :). 目的在于制作一个类似于 Microsoft 应用程序或“魔术控件”中提出的数据查看控件的基础。 因此,主要目标是外观定义和基本功能。

主要构想

主要想法是扩展一个 ListView,并使用它的属性。 自定义它以仅显示列表,将只读权限禁止为 false,并将全行选择设置为 true。 此外,使其能够处理数据源,只需将一个新对象添加到控件中以保存数据,并创建一些函数来处理给定的数据源。 为数据源中的每一行在控件中创建一个行... 实现一些属性以使控件具有功能,例如:SelectedItemSelectedItems[]

没什么难的……除了拦截行绘制事件。 如果想要更漂亮的绘制,这就是一个大问题。 因此,代码必须拦截绘制项目消息并对其进行自定义处理。 为了拦截此消息,必须设置控件样式,以便将所需的消息传递给您,而不是默认处理。

为了使控件有用,我必须实现一些基本的表格样式……如果可以这样称呼的话 :). 有一些函数可以轻松地实现所有这些功能。

该控件易于使用,就像 DataGrid 一样

DataSet dataSet = new DataSet();
DataListView dataListView = new DataListView();
// let windows designer place the control (dataListView) on the screen...
// initialize dataSet with some data...
dataListView.DataSource = dataSet; // show the data on the control
dataListView.DataMember = "TableNameInDataSet"; // set the data member

而不是结束语

这段代码并非旨在成为“最好的”,它易于理解,并且可以在所有方面得到大力改进。 我以我通常的陈述结束这篇文章:“我希望您能理解……”。

无论如何,如果您喜欢我的想法并且决定使用我的控件,您可以随意根据自己的意愿对其进行修改,但您可以在关于窗口中提到我 :)

© . All rights reserved.