在Word中创建CommandBar并显示winform窗体

来源:互联网 发布:京东 亚马逊 淘宝 编辑:程序博客网 时间:2024/06/05 19:23
前段时间有一个需求需要在一个Word文档中选定文字后在右键菜单中添加一个按钮点击后弹出一个WinForm窗体,由于在实际做的过程中遇到了两个问题因此记录下来.具体做法如下:
  1. 在vs2005中新建一个 shared Add-in 项目,一步一步Next,到Select An Application Host的时候只钩选 Microsoft Word,然后一直Next到完成,会自动创建一个wordAddin项目并带安装项目.
  2. 在项目的Connect.cs中的OnConnection方法中添加代码,这个是启动入口,当Word打开的时候会自动调用这个方法.一下是代码:   
  3. CreateContextMenu(app)方法,注意此处添加的CommandBarButton必须是全局的,不然其Click事件开始只会触发1~2次,后面将不会触发:
  4. 在ShowTermButton_Click事件中将显示一个Form,这里要做特殊处理,就是如何使弹出的窗体自动置于打开的Word之上,在网上找了很久才找到可行的处理方式,是参照http://social.msdn.microsoft.com/forums/en-US/vsto/thread/19539460-14ce-4ea0-9a53-50d38a4eb3b0/ 这个地方来的,代码如下:


    WordWin32Window类代码如下:
  5.  另一个按钮事件,显示气泡: