管理侧栏——Word 2007高级应用(九)
2008-10-14 20:18:23 来源:WEB开发网管理侧栏
我曾不止一次同时查看多个打开的Excel窗口,一不小心关闭其中一个致使其它的都关闭了,然而,这种情况不会出现在使用Word的时候。究其原因,乃Andrew和Robert在他们各自的文章里讲述的,Word和Excel使用了不同的窗口模型。
还记得我们是怎样把"我的博客"侧边栏添加进Word窗口的吗?我们是在ThisAddIn_Startup() 方法中使用CustomTaskPaneCollection.Add() 方法把它添加进来的:
细心的你可能已经发现,我们并没有在这里为"我的博客"侧边栏指定父窗口,VSTO将会把它添加进当前窗口。如果这用在Excel,由于各个Excel窗口共享同一个"Document Frame Window",那么每个打开的Excel窗口也将共享这个"我的博客"侧边栏。但若这用在Word,情况将大不相同,第一个启动的Word窗口将独享"我的博客"侧边栏,其它的都无福消受了。怎么解决这个问题?
一种办法就是处理Microsoft.Office.Interop.Word.Application对象的NewDocument和DocumentOpen事件,使用CustomTaskPaneCollection.Add() 方法的重载版本为每个新建或打开的窗口添加"我的博客"侧边栏。当用户关闭窗口时,我们应该销毁与之关联的侧边栏,然而,正如Robert的文章所指出的,Word没有提供DocumentClosed事件,如果我们在DocumentBeforeClose事件的Event Handler里销毁侧边栏,那么当用户取消关闭窗口时,就会发现侧边栏已被莫名其妙地关闭了,这显然是不可接受的。对于这个问题,Robert的方法确实是一个不错的选择。值得提醒的是,如果添加侧边栏的代码只存在于NewDocument和DocumentOpen事件的Event Handler中,那么第一个新建或者打开的窗口都不会有侧边栏,因为这两个事件是在第一个窗口之后才触发的,于是,你需要把代码复制一份放在ThisAddIn_Startup() 方法里面。
- ››WordPress网站优化:replytocom会导致搜索引擎重复...
- ››wordpress的Akismet插件获取API简单方法
- ››高级SEO的涵义意味着是什么
- ››Word 2010:多语言翻译
- ››Word 2010:快速插入文档封面
- ››Word 2010:通过主题快速转换文档整体风格
- ››Word 2010:可以朗读的屏幕取词翻译
- ››Word 2010:您手边的工具:浮动工具栏
- ››Word 2010:让艺术字为您的文档增色
- ››Word 2010:快速更改文档样式
- ››Word 2010:利用文档导航窗格搜索文档内容
- ››Word 2010:利用文档导航窗格控制文档结构
更多精彩
赞助商链接