Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
In Outlook einen Button auf einem eigenen Ribbon enablen/dissablen funktioniert nicht....
Howard
myCSharp.de - Member

Avatar #avatar-2751.jpg


Dabei seit:
Beiträge: 85

Themenstarter:

In Outlook einen Button auf einem eigenen Ribbon enablen/dissablen funktioniert nicht....

beantworten | zitieren | melden

Hallo Leute,

ich hab mir ein AddIn für Outlook 2010 gebaut. Soweit alles super. Aber nun habe ich ein Ribbon eingebaut. Erst mit dem Designer und dann nach XML usw. funktioniert alles super hab auch Bilder drauf und der Klick reagiert auch. ABER:

Wenn ich versuche auf einen der Button zuzugreifen funktioniert das einfach nicht.
Ich benutze folgende Funktion um an den Button zu kommen:


ThisRibbonCollection ribbonCollection = Globals.Ribbons[Globals.ThisAddIn.Application.ActiveInspector()];

ribbonCollection.HowardOutlookRibbon.btnStartImport.Enabled		= true;

ich habe auch schon die anderen beiden Arten des Zugriffs versucht:


ThisRibbonCollection ribbonCollection = Globals.Ribbons[Globals.ThisAddIn.Application.ActiveExplorer()];

bzw.

Globals.Ribbons.HowardOutlookRibbon.btnStartImport.Enabled		= true;

Das Problem ich bekomme immer eine "Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt." Exception da immer

HowardOutlookRibbon == null 

und auch

ribbonCollection.Count == 0

ist.

Gibts da irgendwie noch nen anderen Weg um an die Buttons zu kommen oder hab ich irgendwas überlesen was ich noch registrieren muss oder so damit ich an die Globals komme?

Vielen Dank

Howard
private Nachricht | Beiträge des Benutzers
Howard
myCSharp.de - Member

Avatar #avatar-2751.jpg


Dabei seit:
Beiträge: 85

Themenstarter:

beantworten | zitieren | melden

Okay eine Möglichkeit habe ich gefunden:

Man kann in der XML Datei für das Ribbon für jeden Button bzw. auch für das ganze Ribbon getEnabled eintragen

<button id="btnImport" onAction="btnClick" label="Import starten" size="large" getImage="getImages" getEnabled="GetBtnEnabled" />

Zwar wird die Funktion

public bool GetBtnEnabled(IRibbonControl control){...}

zunächst nur beim erstmaligem Anzeigen des Ribbons aufgerufen ABER wenn man auf Statusänderungen im Programm reagieren will kann man durch Aufruf von

ribbon.Invalidate(); //ribbon ist die Membervari vom Typ IRibbonUI

den erneuten Aufruf der Funktion "erzwingen".

Wenn keiner ne bessere Idee hat würd ich das erstmal so lassen...

Vielen Dank das Ihr mir zugehört habt beim laut denken

Howard
private Nachricht | Beiträge des Benutzers