填充我的博客侧边栏--Word 2007高级应用

时间:2022-05-03 04:31:52 

填充我的博客侧边栏——Word 2007高级应用

假设"我的博客"侧边栏的相关文件安置在My Blogs文件夹里,该文件夹的结构如下图所示:

填充我的博客侧边栏--Word 2007高级应用

图 1

虽然我们可以通过枚举My Blogs的子文件夹来填充cbxBlogs控件,然而我希望设计一个类来表示博客并且实现一定的数据绑定。回顾上一篇文章“创建我的博客侧边栏——Word 2007高级应用(二)”,"我的博客"侧边栏应该具备如下特性:

填充我的博客侧边栏--Word 2007高级应用

填充我的博客侧边栏--Word 2007高级应用

填充我的博客侧边栏--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文件,里面包含了如下内容:

填充我的博客侧边栏--Word 2007高级应用

有了这个文件,我们就可以顺利存取博客的URL信息了。另外,如果你希望让博客的名字不受路径的约束,即可以包含非法的路径字符,那么你可以为blog元素扩展一个directory属性用于存放路径,这样name属性就可以专门用于界面上的显示了。

增值服务区

你可以通过 Path. GetInvalidFileNameChars()或Path. GetInvalidPathChars()方法查看非法的路径字符。

接下来就是把数据填充到"我的博客"侧边栏了,回到MyBlogsUserControl.cs,在构造函数里添加如下所示的代码:

填充我的博客侧边栏--Word 2007高级应用

对于Code #02,以下几点是需要说明的:

我们使用LINQ to XML获取Blogs.xml中博客的相关数据,并把这些数据绑定到博客列表上。

我们获取blogs元素的defaultBlog属性的值,并用它来设置cbxBlogs.SelectedText属性,使得它所指定的默认博客成为当前所选定的博客。

如果我们约定第一个blog元素就是默认博客,那么这里就不需要使用defaultBlog属性和设置SelectedText属性了,因为当我们把一 个数据源绑定到DataSource属性时,它会在完成绑定后把第一个条目设为当前选定项,当然,此时会引发 SelectedValueChanged(和其它相关的)事件。

噢,别忘记cbxBlogs的SelectedValueChanged事件,下面是该事件的Event Handler:

填充我的博客侧边栏--Word 2007高级应用

值得提醒的是,Blog.GetRecentPosts()方法所返回的数组的元素个数和对应博客的设置相关:

填充我的博客侧边栏--Word 2007高级应用

图 2

现在来看看运行效果:

填充我的博客侧边栏--Word 2007高级应用

图 3

下一章将为大家介绍任何利用Word 2007查看博客、最近帖子和存档草稿

标签:填充我的博客侧边栏--Word,2007高级应用
0
投稿

猜你喜欢

  • 白色版微软手环2真机曝光,或将对外发布

    2023-04-04 09:45:00
  • WPS演示怎么将导入的图片变成圆形操作教学分享

    2023-04-09 12:57:28
  • Win10系统出错怎么修复系统?建议使用MediaCreationTool工具一键修复

    2023-07-17 16:15:22
  • excel 连接符号怎么打,连接符怎么用,在函数公式中的使用场景

    2023-08-18 14:44:18
  • Win7如何制作主题桌面?

    2022-12-26 11:02:07
  • photoshop怎么制作穿插效果的海报艺术字体?

    2023-03-20 04:30:25
  • PowerPoint 2010动态展现内容信息

    2022-09-12 08:04:14
  • Word文档最后一页怎么压缩到其他页?

    2023-04-06 10:33:01
  • 电脑WPS文档如何查找文本

    2023-09-11 15:14:42
  • wps的脚注怎么给文献添加脚注

    2023-06-09 07:05:43
  • Win10 64位系统下鼠标右键刷新没反应的解决方案

    2023-03-02 12:16:42
  • WPS Office手机版文档另存为方法图文介绍

    2023-05-03 04:26:29
  • PPT炫酷的墨迹效果一点也不难,你可以轻松做出来!

    2022-07-27 02:28:23
  • office2016增加了哪些新功能 office2016新功能一览

    2023-08-01 19:13:09
  • Win7如何修改切换窗口数量?

    2022-10-29 21:52:40
  • Excel中表格添加分隔符的操作方法

    2023-03-04 06:41:38
  • Win11 22H2将启用全屏小组件模式!

    2023-06-07 11:19:51
  • 识别图片文字?金鸣文表识别系统帮你解决

    2023-09-03 04:22:36
  • 如何使用PPT中SmartArt图形完成循环图内容页 实例教程及技巧

    2023-03-04 02:53:09
  • XP系统远程桌面连接不上怎么解决?

    2023-06-16 11:39:47
  • asp之家 电脑教程 m.aspxhome.com