示例代码:

public partial class Sheet4     {

Office.CommandBar menuBar;

Office.CommandBarPopup menuCustom;

Office.CommandBarPopup menu1;

Office.CommandBarButton menu2;

Office.CommandBarButton menu1_1;

Office.CommandBarButton menu1_2;

Office.CommandBarButton menu1_3;

Office.CommandBar bar1;

Office.CommandBarPopup cmenu;

Office.CommandBarButton cmenu_1;

Office.CommandBarButton cmenu_2;

private void Sheet4_Startup(object sender, System.EventArgs e)

{

/普通的菜单///

//添加一级菜单

menuBar = this.Application.CommandBars.ActiveMenuBar;

menuCustom =

(Office.CommandBarPopup)menuBar.Controls.Add(

Office.MsoControlType.msoControlPopup,

missing, missing, missing, true);

menuCustom.Caption = “自定义菜单”;

//添加二级菜单

menu1 =

(Office.CommandBarPopup)menuCustom.Controls.Add(

Office.MsoControlType.msoControlPopup,

missing, missing, missing, true);

menu1.Caption = “菜单风格(&S)”;

//添加同级的菜单

menu2 =

(Office.CommandBarButton)menuCustom.Controls.Add(

Office.MsoControlType.msoControlButton,

missing, missing, missing, true);

menu2.Caption = “自定义按钮类型的菜单(&S)”;

//添加事件要设置Tag属性

menu2.Tag = “custom”;

//添加的事件处理函数

menu2.Click += new Microsoft.Office.Core._CommandBarButtonEvents_ClickEventHandler(menu2_Click);

//添加三级菜单

menu1_1 =

(Office.CommandBarButton)menu1.Controls.Add(

Office.MsoControlType.msoControlButton,

missing, missing, missing, true);

menu1_1.Caption = “Up”;

menu1_1.Tag = “MyUp”;

menu1_1.State = Office.MsoButtonState.msoButtonUp;

//添加事件

menu1_1.Click += new Microsoft.Office.Core._CommandBarButtonEvents_ClickEventHandler(menu1_1_Click);

menu1_2 =

(Office.CommandBarButton)menu1.Controls.Add(

Office.MsoControlType.msoControlButton,

missing, missing, missing, true);

menu1_2.Caption = “Down”;

menu1_2.Tag = “MyDown”;

menu1_2.State = Office.MsoButtonState.msoButtonDown;

//

menu1_2.Click += new Microsoft.Office.Core._CommandBarButtonEvents_ClickEventHandler(menu1_1_Click);

menu1_3 =

(Office.CommandBarButton)menu1.Controls.Add(

Office.MsoControlType.msoControlButton,

missing, missing, missing, true);

menu1_3.Caption = “Mixed”;

menu1_3.State = Office.MsoButtonState.msoButtonMixed;

//上下文菜单/

bar1 = Application.CommandBars["Cell"];

if (bar1 == null)

return;

//添加一级菜单

cmenu =

(Office.CommandBarPopup)bar1.Controls.Add(

Office.MsoControlType.msoControlPopup,

missing, missing, missing, true);

cmenu.Caption = “自定义菜单”;

//添加二级菜单

cmenu_1 =

(Office.CommandBarButton)cmenu.Controls.Add(

Office.MsoControlType.msoControlButton,

missing, missing, missing, true);

cmenu_1.Caption = “Up”;

cmenu_1.State = Office.MsoButtonState.msoButtonUp;

//添加二级菜单

cmenu_2 =

(Office.CommandBarButton)cmenu.Controls.Add(

Office.MsoControlType.msoControlButton,

missing, missing, missing, true);

cmenu_2.Caption = “Down”;

cmenu_2.State = Office.MsoButtonState.msoButtonDown;

}

void menu1_1_Click(Microsoft.Office.Core.CommandBarButton Ctrl, ref bool CancelDefault)

{

//throw new NotImplementedException();

if (Ctrl.Caption == “Up”)

{

      Ctrl.State = Office.MsoButtonState.msoButtonDown;

Ctrl.Caption = “Down”;

}

else

{

Ctrl.State = Office.MsoButtonState.msoButtonUp;

Ctrl.Caption = “Up”;

}

}

void menu2_Click(Microsoft.Office.Core.CommandBarButton Ctrl, ref bool CancelDefault)

{

//throw new NotImplementedException();

MessageBox.Show(”这是一个自定义菜单项”);

}

private void Sheet4_Shutdown(object sender, System.EventArgs e)         {         }

#region VSTO Designer generated code

/// <summary>

/// Required method for Designer support - do not modify

/// the contents of this method with the code editor.

/// </summary>

private void InternalStartup()

{

this.Startup += new System.EventHandler(Sheet4_Startup);

this.Shutdown += new System.EventHandler(Sheet4_Shutdown);

}

#endregion

转载于:https://www.cnblogs.com/lisengl/archive/2012/11/28/2792153.html

VSTO为Excel快捷菜单添加项相关推荐

  1. 右键快捷菜单添加WinRAR

  2. iOS 支持3DTouch快捷菜单

    简介 iOS从iPhone6s.iOS9加入了3D Touch功能,支持通过对屏幕施加不同程度的压力来访问快捷入口和附加功能,见下图. 3D Touch的使用场景 快捷菜单,快捷入口,快速访问程序的功 ...

  3. 右键新建里面没有word和excel_Windows10系统下如何将Sublime Text3添加到右键快捷菜单?...

    由于本人用的Sublime Text是汉化绿色版的,不仅仅是因为绿色版免去了安装步骤 解压即用,还因为里面整合了常用的高效率必备插件,但是发现右键竟然没有用Sublime Text打开的快捷菜单,这对 ...

  4. ubuntu右键添加打开终端的快捷菜单

    ubuntu右键添加打开终端的快捷菜单 点击在新窗口中浏览此图片可能有很多人从Redhat等Linux发行版转到ubuntu上面来遇到的第一个最常用的问题就是,右键单击桌面,发现没有"打开终 ...

  5. 戴尔便携式计算机右键,戴尔最新笔记本如何在右键菜单添加“在此处打开命令窗口”设置项?...

    最近有位戴尔最新笔记本用户,在升级Win10系统后,发现原本的命令提示符已被Powershell取代,因此操作上感觉有点不太习惯,需要一点时间适应,想知道如何在桌面右键菜单中添加"在此处打开 ...

  6. 【Delphi】Android 桌面图标添加快捷菜单功能

    目录 一.为什么需要桌面图标长按快捷菜单 二.实现Android桌面图标快捷菜单 第一步:Delphi 创建一个 FMX 工程文件:ShortCut_Demo.dpr 第二步:编辑项目中的 Andro ...

  7. Mac OS X下删除或添加鼠标右键菜单项目及清除Mac OS右键菜单重复项

    一.Mac OS X下删除或添加鼠标右键菜单项目 1. 打开 Finder,点击屏幕顶部菜单栏的 "前往",在下拉菜单里选择 "前往文件夹-" 2. 在弹出的输 ...

  8. 如何将winrar添加到右键快捷菜单

    压缩文件,右键快捷菜单并没有winrar的压缩选项,之前都是使用的右键>发送到>压缩(zipped)文件夹, 参考百度知道怎样将 winrar添加到右键菜单中去,有所出入,应该是版本差异. ...

  9. C#开发学习笔记:GridControl添加右键快捷菜单

    1.向窗体拖入控件 2.在窗体加载事件中为快捷菜单的选项绑定自定义事件 foreach (ToolStripMenuItem item in contextMenuStrip1.Items) {str ...

最新文章

  1. linux下chmod使用
  2. led控制器java_TM1668 Led 驱动芯片源程序
  3. Day11多态部分-1 【1.1 多态的体现】
  4. 大数据WEB阶段(五)jQuery
  5. 【struts2】struts2配置文件—struts.xml
  6. 对mask进行rle编码然后进行解码-详细注释
  7. [转载] 一致性哈希
  8. Together(AtCoder-3524)
  9. android截取网页图片,安卓版谷歌浏览器很快将获得滚动截图功能 可以用来截取整个网页...
  10. Android开机启动Activity或者Service方法
  11. (转)软件工程 英文缩写
  12. 浅谈互联网寒冬Android进阶之路
  13. easyexcel写动态表头(横向扩展)
  14. 独孤求败--之--InnoDB、MyISAM索引实现过程
  15. 618省心凑背后的新算法——个性化凑单商品打包购推荐
  16. 网络——5层结构介绍
  17. android自定义组件属性,Android组合控件详解 自定义属性
  18. 微信支付开发准备工作和详细步骤
  19. CCD相机和CMOS相机的区别
  20. python画五环图_对Python安装及绘制五环图的初步认识,初识,pythonpython,与

热门文章

  1. Mac 使用SSH远程登录
  2. OD使用教程 调试篇
  3. c++ set有序性
  4. 单链表的的逆置(带头结点)
  5. shell实例第21讲:定时清空文件内容,定时记录文件大小
  6. ARM汇编文件的组成和汇编指令类型
  7. STM32 USART串口DMA 接收和发送的源码详解!
  8. redis的string类型和bitmap
  9. 设计模式:设计模式七大原则之迪米特法则
  10. 操作系统三: 地址空间与地址生成