2016-01-12 1 views
0

Le problème est lorsque l'utilisateur détache le courrier électronique et utilise le complément. Il pense, et je comprends pourquoi, qu'il fonctionne sur le courriel qu'il peut voir devant lui. Mais la mise en œuvre est:Comment distinguer si le bouton a été appuyé sur la fenêtre principale ou sur le courriel ouvert dans une fenêtre séparée?

Selection selection = app.ActiveExplorer().Selection ;

Ainsi, l'utilisateur est en fait agir sur la sélection de l'explorateur, qui se trouve sur la fenêtre principale. Ma question est:

Comment vérifier où le bouton a été pressé? Était-ce la fenêtre principale avec l'explorateur, ou un email détaché dans une fenêtre séparée?

P.S. Le bouton est placé sur le ruban.

Répondre

1

Le gestionnaire de clic sur un bouton prend RibbonControl comme paramètre. Cast RibbonControl.Context en tant qu'Explorateur ou Inspecteur.

1

La première approche consiste à vérifier la méthode ActiveWindow qui retourne retourne un objet représentant la fenêtre actuelle de Microsoft Outlook sur le bureau, soit un Explorateur ou un objet Inspecteur. Renvoie Nothing si aucun explorateur ou inspecteur Outlook n'est ouvert. La deuxième manière (droite) consiste à vérifier la propriété Context de l'interface IRibbonControl qui représente la fenêtre active contenant l'interface utilisateur du ruban qui déclenche une procédure de rappel. Vous pouvez en savoir plus sur l'interface utilisateur Fluent dans la série d'articles dans MSDN: