Windows 2008Windows VistaWindows 2003Visual Studio 2008Visual Studio 2005Windows 2000Windows XP.NET 2.0Windows Forms初学者开发Visual StudioWindows.NETC#
Vista 样式地址栏,适用于 .NET 2.0/WinForms






4.77/5 (10投票s)
WinForms 版本的 Vista 样式地址栏,可以扩展以支持浏览文件系统以外的内容。
- 版本 1 - 下载源代码 - 184.58 KB (Visual Studio 2005 项目格式)
- 版本 2 - 下载源代码 - 512.24 KB (Visual Studio 2008 项目格式)
- 版本 2.1 - 下载源代码 - 112.16 KB (Visual Studio 2008 项目格式)

引言
虽然 Windows Vista 仍然存在许多争议和讨论,但它实现的一些特性/更改相当酷。 但是,微软并没有真正让我们这些普通(或学生)开发人员使用一些很酷的 UI 更改。
本文/代码示例包含了一个 Vista 样式地址栏的个人实现,用于 .NET/WinForms 应用程序。 它基于一个简单的树/节点遍历,可以继承以浏览任何您喜欢的内容。
演示中包含一个示例实现,用于浏览文件系统树,但其功能有限(它只是为了说明它是如何工作的:)。
Using the Code
理解代码的最简单方法是下载并打开它,然后试用一下。
使用该栏的最简单方法是在设计视图中将其拖放到您的窗体上,然后在您的窗体的构造函数中添加以下代码
//Initialize the bar with a root node type.
this.AdBar.InitializeRoot(new FileSystemNode());
您需要做的就是传递给它一个根节点,并且节点本身应该直接向控件提供信息。 FileSystemNode
提供对您的 Windows 安装上找到的第一个逻辑驱动器的基本枚举。
要实现 IAddressNode
类,需要重写和实现一些简单的属性,然后自己实现三个实际的方法
UpdateNode()
- 用于更新节点本身以进行任何更改(例如,在FileSystemNode
中,它检查子文件夹更改和文件夹名称更改)GetChild()
- 根据唯一 ID 搜索给定的子节点(唯一 ID 是您定义的任何内容。在FileSystemNode
中,我们使用文件夹的绝对路径作为唯一 ID)。Clone()
- 将给定的节点克隆为一个单独的值副本(而不仅仅是通过引用)。
结论
它简单且相对轻量级,只需要您实现自己的 IAddressNode
派生类,以便它可以遍历您认为合适的任何层次结构。:)
历史
- 2009 年 7 月 3 日 - 首次将代码上传到 CodeProject
- 2009 年 12 月 29 日 - 版本 2.0 支持“我的电脑”根节点和 VS2008,各种错误修复
- 2010 年 4 月 10 日 - 版本 2.1 修复了溢出行为,以更好地利用可用空间。 对溢出生成进行轻微优化。