我尝试了 3 种不同的代码示例,但都失败了。
这是来自 MSFT 员工的代码(如何在范围上显示上下文菜单),其他两个示例的代码几乎完全相同:
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
CommandBar cellbar = this.Application.CommandBars["Cell"];
CommandBarButton button = (CommandBarButton) cellbar.FindControl(MsoControlType.msoControlButton, 0, "MYRIGHTCLICKMENU", Missing.Value, Missing.Value);
if (button == null)
{
// add the button
button = (CommandBarButton) cellbar.Controls.Add(MsoControlType.msoControlButton, Missing.Value, Missing.Value, cellbar.Controls.Count, true);
button.Caption = "Refresh";
button.BeginGroup = true;
button.Tag = "MYRIGHTCLICKMENU";
button.Click += new _CommandBarButtonEvents_ClickEventHandler(MyButton_Click);
}
}
private void MyButton_Click(CommandBarButton cmdBarbutton, ref bool cancel)
{
System.Windows.Forms.MessageBox.Show("MyButton was Clicked", "MyCOMAddin");
}
右键单击单元格时,我希望看到一个名为 Refresh 的菜单项。然而运行上述代码(在 Excel 2010 中)没有“刷新”菜单项。
我可能遗漏了什么,或者此功能从 2007 年到 2010 年是否发生了变化?