Frage

Ich habe ein Excel-Add-In mit 2 Schaltflächen, von denen die zweite beim Laden des Add-Ins ausgeblendet werden soll.Hier ist mein Code:

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

    ....
}

Das Problem ist, dass die zweite Schaltfläche gezeichnet und dann entfernt wird (anstatt von Anfang an ausgeblendet zu werden), wodurch ein Geisterbild des TwoIco in der Dropdown-Liste mit den Symbolleistenoptionen verbleibt...

Bad

statt ...

Good

Irgendwelche Ideen bitte?!

War es hilfreich?

Lösung

Ich habe ein altes Add-In, das Schaltflächen in OnStartupComplete erstellt hat, und beim Durchsehen des Codes bestand der einzige wesentliche Unterschied in meinem darin, dass ich das eingestellt habe .Visible = false zuletzt, nachdem Sie die Eigenschaften für Beschriftung, Stil und Bild festgelegt haben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top