添加/删除博客信息--Word 2007高级应用8
发布时间:2023-04-24 12:01:30
Manage Blogs按钮的其中一组重要功能是显示、储存和更改工作目录的当前位置,而这个位置是储存在配置中的,于是,我们得先构建好这个储存设施。打开项目的属 性窗口,切换到Settings页面,在里面添加WorkingDirectory项,并将其Type设置为string,Scope设置为User:
图 1
当用户第一次运行插件时,工作目录和WorkingDirectory项的值都没有就绪,需要在所有自定义插件代码运行之前创建工作目录,并把WorkingDirectory项的值初始化为该目录的路径。初次运行时:
在我的文档目录下创建一个My Blogs文件夹;
在My Blogs文件夹里面创建Blogs.xml数据文件;
把WorkingDirectory项的值设置为第一步创建的文件夹的路径。
而当用户更改工作目录的位置时:
里面的东西会一并移动到新的位置;
WorkingDirectory项的值会被设为新工作目录的路径。
Manage Blogs按钮的另一组重要功能是显示现有博客、添加新博客、更改现有博客的名字和删除现有博客。现有博客的显示是通过获取Blogs.xml里的数据来实现的。新博客的添加会依次执行如下两项操作:
把新博客的名字和网页地址添加到Blogs.xml里;
在工作目录里为新博客创建一个以其名字为名的文件夹,并在该文件夹里分别创建Posts和Drafts两个文件夹。
对于一个给定的博客,它的网页地址就是它的身份标识,一旦更改,我们就认为是一个新的博客,所以更改博客的信息仅限于更改它的名字,而这又涉及到如下两项操作:
把Blogs.xml里对应的博客名字改为新的名字;
把工作目录里对应的文件夹名字改为新的名字。
现有博客的删除也包含如下两项操作:
在Blogs.xml里删除该博客的对应信息;
在工作目录里删除该博客相关的文件夹及其内容。
这些操作将会由BlogsManager类负责:
// Code #04 |
对于Code #04,以下几点是需要说明的:
BlogsManager类的Initialize() 方法将用在ThisAddIn_Startup里所有代码之前,确保运行插件的所有前提条件都得到满足,而其它方法和属性将用在点击Manage Blogs按钮所显示的Blogs Manager对话框里。
Blogs.xml这个文件的路径在多个地方用到,你可以考虑为BlogsManager添加一个辅助方法用于返回这个路径。
对于Add()、Rename() 和Remove() 三个方法,我没有为它们添加任何错误检测和处理代码,这些是必须的,但我想把这项任务留给读者(其实就是自己懒惰)。
另外,当用户添加新博客、更改现有博客的名字或者删除现有博客时,"我的博客"侧边栏都应该进行刷新,你可以通过事件把"我的博客"侧边栏和BlogsManager类关联起来,这项任务并不难,所以我不打算在这里多费笔墨了(明显是懒惰的借口)。
当某个博客的某(几)篇文章打开时,对博客更名的操作会失败,因为该操作包含对文件夹的操作,而此时文件夹正被使用,所以操作系统会拒绝对文件夹更名。 这个问题是由当前设计所致的,解决办法是有很多的,老实说,我也对这个设计所造成的限制感到很不爽,然而我还是希望给读者留点思考的空间。
现在是时候说说Blogs Manager对话框了:
图 2
它会在加载时把BlogsManager的WorkingDirectory属性的值赋给工作目录编辑框,把BlogsManager的Blogs属性的内容填充到博客列表中:
Code #05中的博客列表结合了ImageList组件一起使用,以便为每个博客项显示一个图标。需要说明的是,你需要适当设置ImageList的ColorDepth和ImageSize这两个属性,以便取得最佳效果。
当用户点击Change按钮时,FolderBrowserDialog将会显示并让用户选择新的路径:
博客列表提供右键菜单以便用户添加新博客和删除现有博客。当用户右击列表中的某个图标时,菜单显示删除菜单项;当用户右击列表的空白处时,菜单显示添加 菜单项。要做到这样,先按通常的方法实现一个具有两个菜单项的右键菜单,而这两个菜单项的Click事件的Event Handler分别是:
然后处理右键菜档的Openning事件:
当然,你也可以找到其它方法实现同样的效果,例如直接在右键菜档的Openning事件的Event Handler里根据情况动态添加菜单项,你可以自行试验一下。为了使得菜单更加美观,我决定为这两个菜单项添加图标。在Solution Explorer中双击项目里的Resources.resx项,切换到Image视图,选择Add ResourceAdd Existing File…菜单项,并把你想要的图片加进来,然后分别设置这两个菜单项的Image属性(使用大小为16x16的PNG图标效果最佳):
图 3
对于更改现有博客的名字,我选择ListView自带的"标签编辑"功能,它使得你可以像在Windows Explorer中更改文件或文件夹的名字那样更改博客的名字。要做到这点,你要先把博客列表的LabelEdit属性设为true,然后处理它的 AfterLabelEdit事件:
现在轮到用户添加新博客时显示的Blog对话框了:
图4
它的任务比较简单:
当用户点击Cancel按钮时,把DialogResult的值设为Cancel;
当用户点击OK按钮时,检查两个编辑框是否为空,仅当它们同时不为空才把DialogResult的值设为OK,否则显示错误信息。
对于Cancel按钮,只需简单的把它的DialogResult属性的值设为Cancel就行了。对于OK按钮,我们需要处理它的Click事件,我在这里使用了ErrorProvider组件协助提示错误信息:
当然,别忘了BlogName和BlogUrl这两个属性:
终于到了最后一步,处理好Manage Blogs按钮的Click事件:
然后看看运行效果:
图5
如果你曾经使用VSTO 2005 SE进行Ribbon开发,那么我相信你会对这里介绍的新的开发方式感到满意。然而,如果你比较习惯从前的那种方式,Visual Studio 2008 Beta 2还是能够满足你的,即在添加Ribbon扩展时选择Ribbon (XML)(参见Figure 1)。
增值服务区
Synchronizing Ribbon and Task Pane,Andrew Whitechapel
Office 2007 Ribbon开发,蒜头Harry
至此,Blogging Ribbon的开发要告一段落了,虽然你还有很多需求希望提出来。然而,"我的博客"侧边栏还有一个致命的问题:如果你打开多个文档,那么它只会出现在第 一个打开的文档里,其它的文档里却不见踪影。虽然这是Word本身的特性所致的,然而对于用户来说却是无法接受的。下一回,我们将探讨"我的博客"侧边栏 的管理问题。


猜你喜欢
- 电脑主机使用的年代越久,主机内部的灰尘挤压的就越多,散热风扇就像是一个吸尘器,不断的吸引周遭的灰尘。你可能从未清理过主机灰尘,但凡事都有第一
- Win10 RS5预览版17686今日推送,这个版本修复了哪些内容?又出现了哪些新bug?下面我们汇总了这个版本系统常规改进、已修复内容与已
- 电脑用久了运行速度越来越慢怎么办?电脑使用时间越久,就越会出现卡顿的问题,这是我们必须对电脑进行一定的清理才行,下面就给大家分享电脑系统运行
- 如何在wps文字中设置文档的行间距呢,下面小编就为你提供wps文字怎么设置行间距的方法啦,希望看完本教程的朋友都能学会并运用起来。wps文字
- 使用“页面设置”对话框可以更改文档中的边距,更改纸张尺寸以及更改文档的布局。调用页面设置对话框后,您会看到三个选项卡:边距,纸张和布局。在这
- wps表格是强大的数据处理工具,在wps表格中计算不同值的数量,对于新手可能不知如何去操作,下面就让小编告诉你 wps如何计算不同值的数量的
- 在使用win10系统的时候,我们可能会遇到输入设备无法使用的问题。比如聊天的时候麦克风没有声音。小编觉得可以通过设备管理器中对设备或者是驱动
- 在今晚刚刚结束的Windows 10发布会上微软宣布百度成为继腾讯和360之后又一个推广升级Windows 10的中国互联网巨头。如此一来,
- 由于一本工作簿具有多张工作表,且它们不可能同时显示在一个屏幕上,所以我们要不断地在工作表中切换,来完成不同的工作。由于一本工作簿具有多张工作
- 迅雷使用常见问题汇总专业的为广大用户们进行解答,解答有关迅雷软件使用的各种问题等,帮助用户们解决一些下载使用上的小烦恼,不管是下载慢、被限速
- 暴风影音是一款大家日常使用的视频播放软件,很多用户在下载完视频文件,却不知道怎么压缩拷贝到其他电脑,你知道暴风影音怎么压缩视频的吗?接下来我
- win10中KB4074588补丁导致usb不识别该怎么办?win10系统小升级一下,发现了一个问题鼠标等usb设备没办法使用了,该怎么办呢
- 天天向商怎么修改字体颜色?天天向商是一款图片美化软件,我们在天天向商中编辑模板时,可以根据自己的需求修改字体的颜色,那么你知道要字体颜色要怎
- 对于wps 幻灯片的制作,要怎么将幻灯片文档转换成视频呢?下面小编就为你介绍wps幻灯片如何转换视频的方法啦!wps幻灯片转换视频的方法:首
- 我们在wps表格中录入数据的后,还可以对其进行条件排序,例如,我们可以设置按姓氏排序,对于新手来说还是有一定难度,怎么办?下面小编马上就告诉
- 如何在Excel表格中批量添加空格?为了处理数据的方便,我们都会使用Excel技巧,批量处理,那么如何批量在表格中的内容前面添加空格呢?1、
- WindoWs10正式版系统自带了Edge浏览器,不过很多用户都表示自己更习惯使用经典的IE浏览器。可是,最近有些朋友反馈在Win10下ie
- Win10电脑微软五笔输入法怎么切换全角半角?许多用户在使用电脑的时候通常不会去安装第三方的输入法软件,因为Win10系统自带了输入法。但是
- excel透视表是Excel用于提取数据,汇总数据的一个利器,尤其数据量较多时。用透视表效率(相对于函数)会高一些,快一些。今天这篇文章带大
- 是人都会犯错误,在平时编辑表格的时候,会遗漏或者某行某列或者在编辑途中,想要另外加入新的内容,那么就是要用到“插入行与列”命令。在Word2