2012-05-10 20 views
6

He intentado 3 muestras de código diferentes y todas fallan.Cómo agregar un elemento de menú a Excel 2010 Menú contextual de celda - el código anterior no funciona

Aquí está el código de un empleado MSFT (How to show a context menu on a range), las otras dos muestras tienen casi exactamente el mismo código:

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"); 
} 

Estoy esperando ver un elemento de menú denominado Actualizar cuando el derecho de hacer clic en Una célula. Sin embargo, al ejecutar el código anterior (en Excel 2010) no hay elemento de menú 'Actualizar'.

Realmente agradecería cualquier consejo sobre lo que me podría estar perdiendo o si esta funcionalidad cambió de 2007 a 2010?

Respuesta

3

Compruebe si este tipo de código existe (ya sea en su propio complemento o en cualquier otro complemento que utilice su empresa) y si lo comenta o lo mueve al evento _Shutdown del complemento.

//reset commandbars 
Application.CommandBars["Cell"].Reset(); 
+1

Gracias, se estaba cargando otro complemento y tenía este código de reinicio que borraba mi elemento de menú –

Cuestiones relacionadas