大约四年前,在一个项目中需要一个ListView和TreeListView的组合控件,于是开始编写这个代码。很快发现了Jon Rista在CodeProject上的文章,这让有了灵感。觉得可以在他最初的想法基础上进行扩展,结合其他人的代码(也在下面列出)和想法,开始着手开发。不幸的是,所在的项目最终取消了,但这个控件的开发并没有停止。断断续续地继续工作,现在终于将其发布在CodeProject上。
希望都发现这个控件很有用。在编程中,总会有问题、错误或更好的方法。始终对代码的新想法和设计持开放态度,所以不要害怕告诉。如果有人有任何问题、想法或批评,可以在留言板上发表,将尽快处理。
该控件附带一个由SandCastle生成的完整文档帮助文件(项目中包含Sandcastle.shfb文件,用于未来开发)。代码完全注释,支持Intellisense。提供完整的设计时支持(包括列 - 只需在IDE中点击它们)。内置默认拖放功能(只需打开即可)。默认排序。默认文件夹图像,如果不添加自己的图像。列的图标支持。ContainerListView和TreeListView的复选框/单选按钮支持。能够显示/隐藏单个复选框/单选按钮。能够启用/禁用单个复选框/单选按钮。隐藏列。列/行跟踪。将控件导出到XML并重新导入。导出整个控件或仅节点。ContainerListView和TreeListView控件的网格线功能。列的单独上下文菜单。即时支持编辑单个ContainerListViewItems、ContainerListViewSubItems和TreeListNodes。支持更改两个控件的多个属性的颜色,包括网格线、根线、高亮颜色等。能够显示/隐藏根线、子线、网格线和加减号。将控件添加到ContainerListViewSubItems。颜色的Alpha支持。TreeListNodes的完整路径支持,以便知道在树中的位置。能够更改获取TreeListNode的完整路径时的路径字符。TreeListNodes的分支功能,这意味着可以突出显示、着色、选择、禁用等。一棵树/子节点的子集等等!
仅用于未来开发的属性将在设计器和Intellisense中显示为“不支持”。可能需要从代码中移除源代码绑定和文件。解决方案已移植到Visual Studio 2008。然而,目标框架是.NET 2.0框架,因此如果需要,可以将代码回移植到Visual Studio 2005。将示例项目解压缩到源项目的同一目录中,因为示例项目引用了源项目。否则,将不得不重新引用源项目。