填充我的博客侧边栏--Word 2007高级应用
发布时间:2022-05-03 04:31:52
填充我的博客侧边栏——Word 2007高级应用
假设"我的博客"侧边栏的相关文件安置在My Blogs文件夹里,该文件夹的结构如下图所示:
图 1
虽然我们可以通过枚举My Blogs的子文件夹来填充cbxBlogs控件,然而我希望设计一个类来表示博客并且实现一定的数据绑定。回顾上一篇文章“创建我的博客侧边栏——Word 2007高级应用(二)”,"我的博客"侧边栏应该具备如下特性:
它会在启动时读取My Blogs文件夹里的相关信息,并且填充 cbxBlogs控件;
当我们在博客列表中选择某个博客时,它会通过RSS获取该博客最近发布的帖子,并且填充lbxRecentPosts控件;
当我们在博客列表中选择某个博客时,它会读取该博客帖子草稿文件夹里的数据,并且填充lbxDrafts控件;
当我们在博客列表中选择某个博客时,按下View Blog按钮将会在Internet Explorer中打开该博客的主页;
当我们在最近帖子列表中选择某个帖子时,按下View Post按钮将会在Internet Explorer中打开该帖子的网页;
当我们在草稿列表中选择某个草稿时,按下Open Draft按钮将会在新的Word 2007中打开该草稿。
明确这些需求后,我们就可以着手写代码了:
对于Code #01,以下几点是需要说明的:
Post、Draft和Blog类都重写了ToString()方法,这是因为ComboBox和ListBox等控件会调用该方法并把返回的字符串用 作条目的显示,重写该方法是为了让条目得到正确的显示。当然,如果你结合DataSource和DisplayMember来使用,也可以不重写 ToString()方法。
Blog.GetRecentPosts()方法里使用Argotic Syndication Framework来进行RSS信息处理,所以你需要下载并安装它,然后在项目中引用相关的类库和Argotic.Core.Rss命名空间。
Blog.GetRecentPosts()方法里对RSS地址进行了假设,这个假设适用于博客园以及旗下其它网站,当然,你可以想出很多方法让它具备普遍适用性。
Blog.GetRecentPosts()方法里使用NetworkInterface. GetIsNetworkAvailable()方法判断当前网络是否连通,如果连通则获取数据,否则返回空数组。
Blog.GetDrafts()方法没有进行任何筛选,这里假设文件夹里面只包含.docx和/或.doc文件。由于这些文件将会用Word 2007打开,如果你可能往文件夹里放置Word 2007不能读取的文件,那么你最好为LINQ查询语句加入where来进行必要的过滤。
在Blog.GetDrafts()方法里,我还假设My Blogs文件夹是放在"我的文档"里的,并且博客所在的文件夹名字和博客的名字一样,当然,这样我们就不能在博客的名字里面包含非法的路径字符了。
我们可以让文件夹的名字和博客的名字相同,但却无法在这里包含博客的URL信息,而这又是很多操作的前提,于是我在My Blogs文件夹里放置一个Blogs.xml文件,里面包含了如下内容:
有了这个文件,我们就可以顺利存取博客的URL信息了。另外,如果你希望让博客的名字不受路径的约束,即可以包含非法的路径字符,那么你可以为blog元素扩展一个directory属性用于存放路径,这样name属性就可以专门用于界面上的显示了。
增值服务区
你可以通过 Path. GetInvalidFileNameChars()或Path. GetInvalidPathChars()方法查看非法的路径字符。
接下来就是把数据填充到"我的博客"侧边栏了,回到MyBlogsUserControl.cs,在构造函数里添加如下所示的代码:
对于Code #02,以下几点是需要说明的:
我们使用LINQ to XML获取Blogs.xml中博客的相关数据,并把这些数据绑定到博客列表上。
我们获取blogs元素的defaultBlog属性的值,并用它来设置cbxBlogs.SelectedText属性,使得它所指定的默认博客成为当前所选定的博客。
如果我们约定第一个blog元素就是默认博客,那么这里就不需要使用defaultBlog属性和设置SelectedText属性了,因为当我们把一 个数据源绑定到DataSource属性时,它会在完成绑定后把第一个条目设为当前选定项,当然,此时会引发 SelectedValueChanged(和其它相关的)事件。
噢,别忘记cbxBlogs的SelectedValueChanged事件,下面是该事件的Event Handler:
值得提醒的是,Blog.GetRecentPosts()方法所返回的数组的元素个数和对应博客的设置相关:
图 2
现在来看看运行效果:
图 3
下一章将为大家介绍任何利用Word 2007查看博客、最近帖子和存档草稿


猜你喜欢
- 操作步骤:选中图片—图片格式—删除背景—标记要保留的区域—标记要删除的区域—保留更改。具体操作看下图: PPT图片如何
- 大家都知道,在PPT当中有个非常好用的文字转换成图形的功能叫做SmartArt工具,尤其是制作组织架构图的时候,这个工具的使用频率非常的高。
- 通过“用量历史”可以查看 Mac 笔记本电脑的电池电量、Mac 的能耗使用情况和屏幕打开的时长。您可以检查过去 24 小时或过去 10 天的
- 很多小伙伴在安装Windows7时,系统提示:Windows无法启动安装过程?这是怎么一回事呢?可能是硬件问题导致的,还有可能是系统设置问题
- HBuilderX是全新推出的一款HTML5的Web开发工具。很多用户在使用hbuilderx的时候,想知道空格代替制表符怎么关闭,针对这一
- 图片过大,或者是大小不一,下软件容易中毒又麻烦,教大家用电脑上的word来修改图片大小。那么下面就由小编给大家分享下word中修改图片大小的
- 我往PPT文档中插入了背景音乐后,在本机能够正常地听到声音,可同样是这个文件,复制到别人的电脑上却无法听到声音。请问这是什么原因,应该如何解
- 有网友在问:Win10同步中心在哪呢?Win10系统上如何打开同步中心呢?一般来说,Windows系统的多数系统功能都集中在控制面板中,下面
- 电脑上酷我音乐怎么剪辑铃声?酷我音乐结合了歌曲和MV搜索、同步歌词、在线播放为一体,采用了Metro的设计风格,配合写真欣赏模式、新超清MV
- 在工作中有时候我们需要用打印机来打印文件,那么初次使用一般要先在Mac电脑上添加打印机才能正常使用,那么mac电脑如何添加打印机?相信大部分
- 家庭组是家庭网络上可以共享文件和打印机的一组计算机,很多朋友们问到Win10如何关闭家庭组?下面小编就给大家带来Win10关闭家庭组的方法,
- 相信很多小伙伴在使用ToDesk的时候还不清楚其有一个隐私屏的功能吧,该功能可以有效的保护用户的屏幕文件、个人隐私信息不被侵犯,那么我们要如
- Win10专业版电脑系统越来越多的朋友在使用,为了功能更全面很多朋友都会自己升级Win10专业版系统,那么朋友们知道怎么样设置能让Win10
- 除了手机屏幕太小、费眼外,设备老旧、卡顿也是许多人选择使用Android模拟器玩手机游戏的主要因素。不过,需要注意的是,在Android模拟
- 第一步:选中word2007文档中目标单元格-右键-表格属性第二步:表格属性-选项第三步:单元格选项-适应文字
- steam是很多游戏爱好者使用的游戏平台,你可以体验到来自全世界各种各样的游戏,不过都需要经过账号登录,那么怎么避开Steam启动游戏?小编
- 下一个主要的iMac版本将于今年发布。据报道,苹果计划在今年晚些时候发布完全重新设计的iMac。据报告说,作品中存在现代设计的iMac,据称
- 最近用PPT模仿了一个“团队介绍”的片头,效果如下,我把上述动画分为两个过程:从开始到“HELLO WE ARE”出现是第一个过程,之后主题
- 有朋友问小编在win10中分配磁盘空间的方法是什么。这个问题我想很多朋友都不是很明白。 Win10系统可以分配磁盘空间。有些朋友想分配其他分
- 1、打开一个需要进行打印的Excel文件2、点击表格左上角的文件,如图所示3、点击页面左侧的打印4、点击打印之后,可以看到右边就出现打印预览