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

介绍

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

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

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏IT技术精选文摘

如何设计一个 RPC 系统

23780
来自专栏木东居士的专栏

从0写一个爬虫,爬取500w好友关系数据

72360
来自专栏应用案例

IT面试干货:PHP面试题汇总及答案

随着近两年来互联网潮流的发展,不少人选择php程序开发的学习。所以今天济南IT培训优就业的老师将与大家一起聊一聊PHP面试会问什么?、 ? PHP程序员经典面试...

41290
来自专栏大数据杂谈

用Python爬虫获取自己感兴趣的博客文章

20290
来自专栏老安的博客

zabbix 自动发现tomcat的war包并实现监控

15520
来自专栏美团技术团队

Android动态日志系统Holmes

背景 美团点评公司是全球领先的一站式生活服务平台,为6亿多消费者和超过450万优质商户提供连接线上线下的电子商务网络。美团点评的业务覆盖了超过200个丰富品类和...

703100
来自专栏小巫技术博客

推荐:Mac下高效静态代码分析神器Unstand详解

18110
来自专栏JackieZheng

AngularJS入门心得2——何为双向数据绑定

  前言:谁说Test工作比较轻松,最近在熟悉几个case,差点没疯。最近又是断断续续的看我的AngularJS,总觉得自己还是没有入门,可能是自己欠前端的东西...

21880
来自专栏公有云大数据平台弹性 MapReduce

浅谈Hadoop Distcp工具的InputFormat

从Hadoop的出现到现在已经超过十年了,它在大数据领域扮演着一个重要的角色,相信在Hadoop的使用过程中,或多或少的都会用到自带的一个常用工具,就是Hado...

29730
来自专栏腾讯云流计算

Data Artisans Streaming Ledger ——流数据处理中串行化的ACID事务

Data Artisans Streaming Ledger,在data Artisans的River Edition上已经可用,提供串行化(一致性事务处理机制...

35710

扫码关注云+社区

领取腾讯云代金券