Windows 7样式地址栏(Address Bar)控件实现

简介: 介绍 从Vista开始,地址栏就有了很大的改变,不知道大家有什么感觉,笔者觉得很方便,同时又兼容之前的功能,是个很不错的创新。不过,微软并不打算把这一很酷的功能提供给广大的开发人员。 本文提供了一个简单的Address Bar实现,使用.NET 2.0和VS2008. 它是基于一个简单的树型遍历实现的,同时适用于各种级联数据。

介绍

从Vista开始,地址栏就有了很大的改变,不知道大家有什么感觉,笔者觉得很方便,同时又兼容之前的功能,是个很不错的创新。不过,微软并不打算把这一很酷的功能提供给广大的开发人员。

本文提供了一个简单的Address Bar实现,使用.NET 2.0和VS2008. 它是基于一个简单的树型遍历实现的,同时适用于各种级联数据。

abe.png

Demo中提供的是一个非常简单的示例,可以浏览文件系统。这里这是展示它是如何工作的。

 

使用代码

了解实现最简单的办法就是直接下载源代码,然后打开玩玩看~

在Design-Time下将Address Bar Control拖入Form,然后再构造器中加入下面一行代码:

 

//Initialize the bar with a root node type.
this.AdBar.InitializeRoot(new FileSystemNode());

你只需要传入一个根节点,然后根节点就会为control提供信息。FileSystemNode包含Windows系统安装后的第一个逻辑盘信息。 要实现IAddressNode类型,有如下三个重要的方法需要自己实现:

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)

 

源码下载

附件:AddressBarExt2_1.zip

 

英文链接:Vista Style Address Bar for .NET 2.0/WinForms

相关文章
|
物联网 测试技术 Android开发
蓝牙BLE传输性能及延迟分析
BLE传输性能主要受以下几个因素影响:操作类型,Connection Interval,每个Connection Event内发送的帧数、每一帧数据的长度。具体参见如下链接: https://en.wikipedia.
4157 0
|
SQL 缓存 Java
SpringBoot系列教程JPA之update使用姿势
上面两篇博文拉开了jpa使用姿势的面纱一角,接下来我们继续往下扯,数据插入db之后,并不是说就一层不变了,就好比我在银行开了户,当然是准备往里面存钱了,有存就有取(特别是当下银行利率这么低还不如买比特币屯着,截止19年6月22日,btc已经突破1.1w$,可惜没钱买😭)这就是我们今天的主题,数据更新--update的使用姿势
1287 0
SpringBoot系列教程JPA之update使用姿势
|
存储 SQL 缓存
云原生内存数据库Tair的演进之路
2022年9月,云原生内存数据库Tair在阿里云正式上线。
云原生内存数据库Tair的演进之路
|
8月前
|
应用服务中间件 nginx Docker
MediaGo:跨平台视频提取下载的开源神器
MediaGo是一款跨平台视频提取工具,支持流媒体、m3u8及B站视频下载,提供Windows和Mac客户端。它无需复杂抓包操作,内置浏览器可轻松嗅探并选择视频资源,支持批量下载和移动播放。项目开源免费,已在GitHub获得5.8k星标。用户还可通过Docker部署Web端,实现远程视频管理和访问。MediaGo以其简单易用和强大功能,重新定义了流媒体下载体验。
426 5
 MediaGo:跨平台视频提取下载的开源神器
|
存储 人工智能 数据中心
阿里云基础设施网络亮相SIGCOMM22 - 可预期网络取得重大突破
阿里云基础设施网络亮相SIGCOMM22 - 可预期网络取得重大突破
阿里云基础设施网络亮相SIGCOMM22 - 可预期网络取得重大突破
阿里云商标注册不下来也收费吗?分情况!商标不通过驳回退款说明
理论上提交商标注册申请到商标局,商标局会收取规费,注册失败也是不可以退款的。但是阿里云推出一个商标安心注册申请,购买的是这个服务的话,哪怕商标注册申请没通过,被商标局驳回了,阿里云与你风险共担,也是可以退全款的
1451 0
阿里云商标注册不下来也收费吗?分情况!商标不通过驳回退款说明
|
运维 监控 搜索推荐
阿里云林小平:如何实现资源高效运维及成本分析
通过标签功能进行资源运维及精细化的权限管理,实现高效能、低成本的目标。
阿里云林小平:如何实现资源高效运维及成本分析
|
前端开发 数据可视化 Java
antd pro与spring boot集成开发平台搭建
antd pro与spring boot集成开发平台搭建
1052 0
|
存储 运维 项目管理
项目经理到底是啥,PDX?
解决问题之前,要先定义问题。当问题被清晰定义之后,答案就已经在路上了   -   一个PM的思考 古希腊苏格拉底提出了一个著名的哲学命题,俗称门卫三问:“我是谁?我从哪里来?我要到哪里去?”当你说清楚这三个问题后,门卫就放行你自由了。当你想明白这三个问题后,你的人生就活明白了。 作为一个起码在表面上看起来爱思考(生存所迫)的互联网项目经理,这几年也在持续的追问,2018年从阿里云转岗去菜鸟科技就是
项目经理到底是啥,PDX?
|
传感器 编解码 监控
青果智能摄像机评测:麻雀虽小,五脏俱全
近几年智能硬件逐渐融入生活中的方方面面,受到了越来越多的消费者关注。就拿智能摄像机来说,作为智能家居中的一个重要角色,智能摄像机肩负着安保监控的重要使命。而各大厂商也纷纷推出了各自的智能摄像头试图抢占这个重要的市场。
1516 0
青果智能摄像机评测:麻雀虽小,五脏俱全