Pregunta

Tengo un complemento de Excel que tiene 2 botones, el segundo de los cuales me gustaría ocultar cuando se carga el complemento.Aquí está mi código:

public void OnStartupComplete(ref System.Array custom)
{
    object omissing = System.Reflection.Missing.Value;                

    CommandBarButton Button1 = (CommandBarButton)g_PLCToolBarInstance.Controls.Add(1, omissing, omissing, omissing, omissing);
    Button1 .Visible = true;
    Button1 .Enabled = true;
    Button1 .Caption = "Button1";                
    Button1 .Style = MsoButtonStyle.msoButtonIcon;
    Button1 .Picture = PictureDispConverter.ToIPictureDisp(OneIco);

    CommandBarButton Button2 = (CommandBarButton)g_PLCToolBarInstance.Controls.Add(1, omissing, omissing, omissing, omissing);
    Button2 .Visible = false;
    Button2 .Enabled = false;
    Button2 .Caption = "Button2";
    Button2 .Style = MsoButtonStyle.msoButtonIcon;
    Button2 .Picture = PictureDispConverter.ToIPictureDisp(TwoIco);

    ....
}

El problema es que el segundo botón se dibuja y luego se elimina (en lugar de ocultarse desde el principio), dejando una imagen fantasma del TwoIco en el menú desplegable de Opciones de la barra de herramientas...

Bad

en lugar de ...

Good

¿Alguna idea por favor?

¿Fue útil?

Solución

Tengo un complemento antiguo que creaba botones en OnStartupComplete y, al revisar el código, la única diferencia sustancial en el mío fue que configuré el .Visible = false por último, después de configurar las propiedades Título, Estilo e Imagen.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top