经过昨天不断看MSDN和网络资料,终于实现了上次提出的问题(完美实现自定义菜单),先给一个效果图:
仔细对比一下VSTO Excel开发(一)中的图,你会发行,这个菜单中多了分组线(也就是那横线)和子菜单(“报表”下还有菜单),这是怎么做到的呢,其实很简单只是将“BeginGroup”属性设为True即实现了分组;而子菜单的实现是将“报表”菜单类型设置为CommandBarPopup,继续上次的代码,需要继续增加的代码我还是用红色代表;
public partial class ThisWorkbook
{
//**自定菜单
//定义菜单变量
//supplierCommand---供应商输入;materialCommand---物品表;questBuyBillCommand---申购单;quotationCommand-----报价单;purchaseOrderCommand--采购单;
//
private Office.CommandBarButton supplierCommand;
private Office.CommandBarButton materialCommand;
private Office.CommandBarButton questBuyBillCommand;
private Office.CommandBarButton quotationCommand;
private Office.CommandBarButton purchaseOrderCommand;
private Office.CommandBarPopup reportPoup; //定义报表子菜单;
private Office.CommandBarButton qbbReportCommand;//定义申购一览表;
private Office.CommandBarButton qutationReportCommand; //定义报价一览表;
//定义菜单Tag
private string menuTag = "A unique tag";
// 如果菜单存在则删除它.
public void CheckIfMenuBarExists()
{
try
{
Office.CommandBarPopup foundMenu = (Office.CommandBarPopup)
this.Application.CommandBars.ActiveMenuBar.FindControl(
Office.MsoControlType.msoControlPopup, System.Type.Missing, menuTag, true, true);