欢迎登陆真网站,您的到来是我们的荣幸。 登陆 注册 忘记密码? ☆设为首页 △加入收藏
欢迎加入真幸福QQ群
电脑知识: 基础知识 网络技术 操作系统 办公软件 电脑维修 电脑安全 windows7 windows8 windows10 服务器教程 平板电脑 视频播放教程 网络应用 互联网 工具软件 浏览器教程 QQ技巧 输入法教程 影视制作 YY教程 wps教程 word教程 Excel教程 PowerPoint
云南西双版纳特产小花糯玉米真空包装


在Word 2007插入Photoshop图片
用Word制作异形图片
在Word 2007插入Flash动画
解决Word 2007不能插入书目的问题
创建我的博客侧边栏——Word 2007高级应用
让Word 2007跨页表格自动在各页顶端重复显示标题
在Word 2007中快速制作目录
创建Word 2007插件项目——Word 2007高级应用
在Word 2007能应用“文字效果”吗
如何快速清除Word 2007中的空行
填充我的博客侧边栏——Word 2007高级应用
【 来源:网络 】【 点击:1 】 【 发布时间:2017_03_03 08:59:59 】

填充我的博客侧边栏——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查看博客、最近帖子和存档草稿

本网站由川南居提供技术支持,fkzxf版权所有 浙ICP备12031891号
淳安分站 淳安分站