Как сделать Excel CommandBarButton невидимым при создании? - PullRequest
1 голос
/ 09 марта 2012

У меня есть надстройка Excel с 2 кнопками, вторую из которых я хотел бы скрыть при загрузке надстройки. Вот мой код:

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

    ....
}

Проблема в том, что вторая кнопка рисуется, затем удаляется (вместо того, чтобы быть скрытой с самого начала), оставляя призрачное изображение TwoIco в раскрывающемся списке Параметры панели инструментов ...

Bad

вместо ...

Good

Любые идеи, пожалуйста?!

1 Ответ

2 голосов
/ 09 марта 2012

У меня есть старая надстройка, которая создавала кнопки в OnStartupComplete, и, просматривая код, единственным существенным отличием для меня было то, что я установил .Visible = false последний, после установки свойств Caption, Style и Picture.

...