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

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

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
填充我的博客侧边栏——Word 2007高级应用

填充我的博客侧边栏——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查询语句加入wher来进行必要的过滤。在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()方法所返回的数组的元素个数和对应博客的设置相

文档评论(0)

rovend + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档