Windows 7样式地址栏(Address Bar)控件实现
介绍
从Vista开始,地址栏就有了很大的改变,不知道大家有什么感觉,笔者觉得很方便,同时又兼容之前的功能,是个很不错的创新。不过,微软并不打算把这一很酷的功能提供给广大的开发人员。
本文提供了一个简单的Address Bar实现,使用.NET 2.0和VS2008. 它是基于一个简单的树型遍历实现的,同时适用于各种级联数据。
Demo中提供的是一个非常简单的示例,可以浏览文件系统。这里这是展示它是如何工作的。
使用代码
了解实现最简单的办法就是直接下载源代码,然后打开玩玩看~
在Design-Time下将Address Bar Control拖入Form,然后再构造器中加入下面一行代码:
1 2 | //Initialize the bar with a root node type. this .AdBar.InitializeRoot( new FileSystemNode()); |
你只需要传入一个根节点,然后根节点就会为control提供信息。FileSystemNode包含Windows系统安装后的第一个逻辑盘信息。 要实现IAddressNode类型,有如下三个重要的方法需要自己实现:
1 2 3 4 5 | UpdateNode() - Used to update the node itself for any changes (e.g. in the FileSystemNode it checks for child folder changes and folder name changes) GetChild() - Searches for a given child node based on a unique ID (A Unique ID being whatever you define it as . In FileSystemNode, we use an absolute path for a folder as the unique ID). Clone() - Clones a given node as a separate value copy (rather than just by reference). |
总结
示例很简单,相对来说也是轻量级的实现。如果想用它操作输了FileSystemNode以外的数据,你只需要实现IAddressNode接口,任何级联结构(hierarchical structure)的数据都可以用它来呈现。
许可证
本文以及示例代码文件遵循The Code Project Open License(CPOL)。
源码下载
分类:
控件知识
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了